Linguagem de Programação
Linguagem de Programação
Linguagem de Programação
Uma das principais metas das linguagens de programação é que programadores tenham uma maior
produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a
linguagem que um computador entende nativamente (código de máquina).[4] Assim, linguagens de
programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente
entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que
programadores e engenheiros de software possam escrever programas mais organizados e com maior
rapidez.
Índice
História
Interpretação e compilação
Conceitos
Programação estruturada
Programação modular
Programação orientada a objetos
Programação linear
Classificação
Classificação da ACM
Quanto ao paradigma
Paradigmas Imperativos
Paradigmas Declarativos
Quanto a estrutura de tipos
Forte ou Fracamente Tipada
Dinâmica ou Estaticamente Tipada
Quanto ao grau de abstração
Quanto à geração
Lista de linguagens
Notas
Referências
Bibliografia
Ver também
Ligações externas
História
O primeiro trabalho de
linguagem de programação
foi criado por Ada
Lovelace, grande amiga de
Charles Babbage.[8] O
projeto da primeira
calculadora mecânica
programável foi idealizado
por Charles Babbage[9]
que, após gastar fortunas e
um longo tempo, não
conseguiu concretizar o
projeto.[10] A linguagem de
programação ADA foi
Grace Hopper em 1984.
batizada em homenagem a
esta primeira
programadora. [11]
Retrato em aquarela de Ada
Lovelace, possivelmente feito por
Uma das primeiras linguagens de programação para computadores
Alfred Edward Chalon em torno de
foi provavelmente Plankalkül, criada por Konrad Zuse na
1840.
Alemanha Nazista,[12] mas que teve pouco ou nenhum impacto no
futuro das linguagens de programação.
O primeiro compilador foi escrito por Grace Hopper,[13] em 1952, para a linguagem de programação A-
0.[14] A primeira linguagem de programação de alto nível amplamente usada foi Fortran, criada em
1954.[14][15] Em 1957 foi criada B-0, sucessora da A-0, que daria origem a Flow-Matic (1958), antecessor
imediato de COBOL, de 1959.[16] O COBOL foi uma linguagem de ampla aceitação para uso
comercial [16] A linguagem ALGOL foi criada em 1958-1960[17] O ALGOL-60 teve grande influência no
comercial. A linguagem ALGOL foi criada em 1958 1960 O ALGOL 60 teve grande influência no
projeto de muitas linguagens posteriores.[18]
A linguagem Lisp foi criada em 1958 e se tornou amplamente utilizada na pesquisa na área de ciência da
computação mais proeminentemente na área de Inteligência Artificial.[19] Outra linguagem relacionada ao
campo da IA que surge em 1972 é a linguagem Prolog, uma linguagem do paradigma lógico.[20]
A orientação a objetos é outro marco importante na história das linguagens de programação. A linguagem
Simula 67 introduz o conceito de classes.[21] A linguagem Smalltalk[22][23] expande o conceito de classes e
se torna a primeira linguagem de programação que oferecia suporte completo à programação orientada a
objetos.[24] A linguagem C++ (originalmente conhecida como C com classes) populariza a orientação a
objetos.[25]
Diversas linguagens de programação surgiram desde então. Entre estas incluem-se C#,[26] VB.NET, Java,
Object Pascal, Objective-C, PHP, Python,[27] SuperCollider, linguagem D[28] e Ruby.[29][Nota 2]
Interpretação e compilação
Uma linguagem de programação pode ser convertida, ou traduzida, em código de
máquina por compilação ou interpretada por um processo denominado interpretação.
Em ambas ocorre a tradução do código fonte para código de máquina.[30]
Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o código java para o código
intermediário (e portável) da JVM. As JVMs originais interpretavam esse código, de acordo com o código
de máquina do computador hospedeiro, porém atualmente elas compilam, segundo a técnica JIT o código
JVM para código hospedeiro.
A tradução é tipicamente feita em várias fases, sendo as mais comuns a análise léxica, a análise sintática (ou
parsing), a geração de código e a otimização.[37] Em compiladores também é comum a geração de código
intermediário [Nota 4]
intermediário.[Nota 4]
Conceitos
Programação estruturada
Programação estruturada é uma forma de programação de computadores que preconiza que todos os
programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e repetição.[38] Um
dos primeiros a preconizar a programação estruturada foi Haskell B. Curry[39][Nota 5] Tendo, na prática,
sido transformada na Programação modular, a Programação estruturada orienta os programadores para a
criação de estruturas simples em seus programas, usando as sub-rotinas e as funções. Foi a forma
dominante na criação de software entre a programação linear e a programação orientada por objetos.[40]
Apesar de ter sido sucedida pela programação orientada por objetos, pode-se dizer que a programação
estruturada ainda é marcantemente influente, uma vez que grande parte das pessoas ainda aprendem
programação através dela. Porém, a orientação a objetos superou o uso das linguagens estruturadas no
mercado.[41]
Programação modular
Orientação a objetos, também conhecida como Programação Orientada a Objetos (POO), ou ainda em
inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de
sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de
objetos. O extensivo uso de objetos, particularmente em conjunção com o mecanismo de herança,
caracteriza o estilo de programação orientada a objetos.[46] Em alguns contextos, prefere-se usar
modelagem orientada ao objeto (UML), em vez de programação. De fato, o paradigma "orientação a
objetos" tem bases conceituais e origem no campo de estudo da cognição, que influenciou a área de
inteligência artificial e da lingüística no campo da abstração de conceitos do mundo real. Na qualidade de
método de modelagem, é tida como a melhor estratégia, e mais natural, para se eliminar o "gap semântico",
dificuldade recorrente no processo de modelar o mundo real, no domínio do problema, em um conjunto de
componentes de software que seja o mais fiel na sua representação deste domínio. Facilitaria a
comunicação do profissional modelador e do usuário da área alvo, na medida em que a correlação da
simbologia e conceitos abstratos do mundo real e da ferramenta de modelagem (conceitos, terminologia,
símbolos, grafismo e estratégias) fosse a mais óbvia, natural e exata possível. A análise e projeto orientados
a objetos tem como meta identificar o melhor conjunto de objetos para descrever um sistema de
software.[47] O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre
estes objetos. Na programação orientada a objetos, implementa-se um conjunto de classes que definem os
objetos presentes no sistema de software. Cada classe determina o comportamento (definido nos métodos) e
[42]
estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos.[42]
Programação linear
Em matemática, problemas de Programação Linear são problemas de otimização nos quais a função
objetivo e as restrições são todas lineares.[48] Programação Linear é uma importante área da otimização por
várias razões. Muitos problemas práticos em pesquisa operacional podem ser expressos como problemas de
programação linear. Certos casos especiais de programação linear, tais como problemas de network flow e
problemas de multicommodity flow são considerados importantes o suficiente para que se tenha gerado
muita pesquisa em algoritmos especializados para suas soluções. Vários algoritmos para outros tipos de
problemas de otimização funcionam resolvendo problemas de PL como sub-problemas. Historicamente,
ideias da programação linear inspiraram muitos dos conceitos centrais de teoria da otimização, tais como
dualidade, decomposição, e a importância da convexidade e suas generalizações.
Classificação
As linguagens de programação podem ser classificadas e sub-classificadas de várias formas.
Classificação da ACM
Quanto ao paradigma
Diferentes linguagens de programação podem ser agrupadas segundo o paradigma que seguem para
abordar a sua sintaxe e semântica. Os paradigmas se dividem em dois grandes grupos: imperativo e
declarativo.[50]
Paradigmas Imperativos
Os paradigmas imperativos são aqueles que facilitam a computação por meio de mudanças de estado.[50]
Se dividem em:
Paradigmas Declarativos
Os paradigmas declarativos são aqueles nos quais um programa especifica uma relação ou função.[50] Se
dividem em:
O paradigma funcional. Linguagens deste paradigma não incluem qualquer provisão para
atribuição ou dados mutáveis[53] Na programação funcional, o mapeamento entre os
valores de entrada e saída são alcançados mais diretamente. Um programa é uma função
(ou grupo de funções), tipicamente constituída de outras funções mais simples.[54]
Exemplos de linguagens deste paradigma são as linguagens Lisp,[55] Scheme[56] e
Haskell[57]
O paradigma da programação lógica. Este paradigma se baseia na noção de que um
programa implementa uma relação ao invés de um mapeamento.[58] Exemplos de
linguagens deste paradigma são o Prolog[59] e a linguagem Gödel.[60]
As linguagens de programação podem ser definidas de duas formas ortogonais quanto a sua estrutura de
tipos.
As linguagens de baixo nível são divididas em duas categorias: primeira geração e segunda geração:
Linguagem de programação de médio nível,[Nota 7] que possui símbolos que podem ser
convertidos diretamente para código de máquina (goto, expressões matemáticas, atribuição
de variáveis), mas também símbolos complexos que são convertidos por um compilador.
Exemplo: C, C++
A Linguagem de alto nível é inteligível pelo ser humano e não executável diretamente pela máquina, no
nível da especificação de algoritmos, como Pascal,[32] Fortran, ALGOL,Java e SQL.[66]
Exemplos
ASP Lua
MATLAB
ActionScript
C/C++ PHP
Python
C#
Pascal/Object Pascal R
Ruby
Euphoria
Tcl
Java
Basic/Visual Basic
JavaScript
Por se tratar de uma classificação subjetiva, isto é, sem limites bem definidos, não é possível afirmar que
"determinada linguagem pode ser mais humana que outra". Apesar disso, por questão de praticabilidade e
objetividade, a classificação geralmente se limita em "linguagem de alto nível" e "linguagem de baixo
nível".
Quanto à geração
A classificação das linguagens de programação em gerações é uma questão que apresenta divergências de
autor para autor. Segundo Maclennan,[68] as linguagens se dividem em cinco gerações com as seguintes
características:
Primeira geração - São linguagens onde suas estruturas de controle são aparentemente
orientadas a máquina. As instruções condicionais não são aninhadas e dependem
fortemente de instruções de desvio incondicional como o GOTO. Uma linguagem típica
desta geração é a linguagem Fortran.[68]
Segunda geração - São linguagens onde as estruturas de controle são estruturadas de
forma a minimizar ou dispensar o uso de instruções GOTO. A segunda geração elaborou
melhor e generalizou diversas estruturas de controle das linguagens de primeira geração.
Uma das grandes contribuições desta geração foi suas estruturas de nomes, que eram
hierarquicamente aninhadas. Isto permitiu melhor controle de espaços de nomes e uma
eficiente alocação dinâmica de memória. Uma linguagem típica desta geração é o Algol
60.[68]
Terceira geração - São linguagens que dão ênfase a simplicidade e eficiência. Uma
linguagem típica desta geração é a linguagem Pascal.[32] As estruturas de dados desta
geração mostram um deslocamento da máquina para a aplicação. As estruturas de controle
são mais simples e eficientes.[68]
Quarta geração - Esta geração é essencialmente o sinônimo para linguagens com
abstração de dados. A maioria das linguagens desta geração focam na modularização e no
encapsulamento. Uma linguagem típica desta geração é a linguagem Ada.[68]
Quinta geração - Nesta geração, Maclennan agrupa diversos paradigmas como a
orientação a objeto e o paradigma funcional, paradigma lógico.[68]
Henri Bal e Dick Grune, já apresentam uma classificação em gerações de forma diferente, enfatizando mais
o aspecto da aplicação. São elencadas 6 gerações.[69]
Doris Apleby e Julius J. VandeKopple dividem as linguagens em quatro gerações que coincidem com as
quatro primeiras gerações elencadas por Henri Bal e Dick Grune.[50]
Lista de linguagens
Existem inúmeras linguagens de programação; as 20 linguagens de programação mais populares, de acordo
com pesquisa divulgada pela RedMonk em março de 2021, são:[41]
6. C++
1. JavaScript
7. TypeScript
2. Python
8. Ruby
3. Java
9. C
4. PHP
10 Swift
10. Swift
5. C#
11. R
12. Objective-C 17. Kotlin
13. Shell 18. Rust
14. Scala 19. Perl
15. Go 20. Dart
16. PowerShell
Referências
1. Fischer, Alice E.; Grodzinsky, Frances (1993). The Anatomy of Programming Languages (em
inglês). Englewood Cliffs, Nova Jérsia: Prentice Hall. p. 3. 557 páginas. ISBN 0-13-035155-
5
2. Dershem, Herbert L.; Jipping, Michael J. (1995). Programming Languages. Structures and
models (em inglês) 2ª ed. Boston: PWS Publishing Company. p. 1. 432 páginas. ISBN 0-
534-94740-9
3. Aho, Alfred V.; Lam, Monica S.; Sethi, Ravi; Ullman, Jeffrey D (2008). Compiladores.
Princípios, técnicas e ferramentas. São Paulo: Addison-Wesley, Pearson. p. 3-5.
634 páginas. ISBN 978-85-88639-24-9
4. Melo, Ana Cristina Vieira de; Silva, Flávio Soares Corrêa da (2003). Princípios de
Linguagens de Programação. São Paulo: Edgard Blücher Ltda. p. 7-11. 211 páginas.
ISBN 85 212 0322 5
ISBN 85-212-0322-5
5. Hannan, James (editor); Oliver, Paul (autor do capítulo) (1982). «6-Program Portability».
Computer Programming Management. New York: Van Nostrand Reinhold. p. 89-100.
155 páginas. ISBN 0-442-20920-7
6. Sammet, Jean E (1969). Programming Languages: History and Fundamentals (em inglês).
Englewood Cliffs, Nova Jérsia: Prentice Hall. p. 14-16. 785 páginas. ISBN 0-13-729988-5
7. Backus, John (julho de 1979). «The History of Fortran I, II, and III». Annals of The History of
Computing (em ingles). 1 (1). Arlington, VA: American Federation of Information Processing
Societies. 80 páginas. ISSN 1058-6180 (https://www.worldcat.org/issn/1058-6180)
8. Huskey, Velma R.; Huskey, Harry D. (Outubro de 1980). «Lady Lovelace and Charles
Babbage». Annals of The History of Computing (em inglês). 2 (4). Arlington, VA: American
Federation of Information Processing Societies. p. 299-329. 384 páginas. ISSN 1058-6180
(https://www.worldcat.org/issn/1058-6180)
9. Breton, Philippe (1991). História da Informática. São Paulo: UNESP. p. 68-69. 260 páginas.
ISBN 85-7139-021-5
10. Gonick, Larry (1984). Introdução Ilustrada à Computação. São Paulo: Harper & Row do
Brasil. p. 51-59. 242 páginas
11. Smith, James F,; Frank, Thomas S (1994). Introduction to Programming Concepts and
Methods with Ada (em inglês). Nova Iorque, EUA: McGraw-Hill. p. 7-8. 545 páginas. ISBN 0-
07-911725-2
12. Zuse, Konrad (Julho de 1980). «Installation of the German Computer Z4 in Zurich in 1950».
Annals of The History of Computing (em inglês). 2 (3). Arlington, VA: American Federation of
Information Processing Societies. p. 239-241. 384 páginas. ISSN 1058-6180 (https://www.w
orldcat.org/issn/1058-6180)
13. Lemone, Karen A. (1992). Fundamentals of Compilers. An Introduction to Computer
Language Translation (em inglês). Boca Raton: CRC. 184 páginas. ISBN 0-8493-7341-7
14. Wexelblat, Richard L.(Editor) (1981). History of Programming Languages. New York:
Academic Press. p. 6-15. 758 páginas. ISBN 0-12-745040-8
15. Metropolis, N.(Ed.); Howlett, J.(Ed.); Rota, Gian-Carlo(Ed.) (1980). A History of Computing in
the Twentieth Century. A collection of essays (em inglês). New York: Academic Press.
pp. 130–131. ISBN 0-12-491650-3
16. Wexelblat, Richard L.(Editor) (1981). History of Programming Languages. New York:
Academic Press. p. 199-278. 758 páginas. ISBN 0-12-745040-8
17. Horowitz, Ellis (editor do livro); Nauer, P. (editor do capítulo) (1987). «Report on the
Algorithmic Language ALGOL 60». Programming Languages. A Grand Tour (em inglês) 3ª
ed. New York: Academic Press. p. 44-60. 512 páginas. ISBN 0-88175-142-1
18. Horowitz, Ellis (editor do livro); Knuth, D. E (1987). «The Remaining Troublespots in ALGOL
60». Programming Languages. A Grand Tour (em inglês) 3ª ed. New York: Academic Press.
p. 61-68. 512 páginas. ISBN 0-88175-142-1
19. Pratt, Terrence W.; Zelkowitz, Marvin V (2001). Programming Languages. Design and
Implementation (em inglês) 4ª ed. Upper Saddle River, Nova Jérsia: Prentice hall. p. 420-
421. 649 páginas. ISBN 0-13-027678-2
20. Gray, Peter (1984). «Representing programs by clauses: Prolog». Logic, Algebra and
Databases (em inglês). Chichester: Ellis Horwood. p. 73. 294 páginas. ISBN 0-85312-709-3
21. Horowitz, Ellis (1984). Fundamentals of Programming Languages (em inglês) 2ª ed.
Rockville, Maryland: Computer Science Press. p. 17. 446 páginas. ISBN 088175-004-2
22. Goldberg, Adele; Robson, David (1989). Smalltalk-80. The language (em inglês). Reading,
Massachusetts: Addison-Wesley. 591 páginas. ISBN 0-201-13688-0
23. Lewis, Simon (1995). The Art and Science of Smalltalk. An Introduction to Object-Oriented
Programming using VisualWorks (em inglês). London: Prentice Hall. 212 páginas. ISBN 0-
13-371345-8
13-371345-8
24. Sebesta, Robert W (2010). Conceitos de Linguagens de Programação 9ª ed. Porto Alegre:
Bookman. p. 108-131. 792 páginas. ISBN 978-85-7780-791-8
25. Schildt, Herbert (1998). C++. The Complete Reference (em inglês) 3ª ed. Berkeley: McGra-
Hill. p. 256. 1008 páginas. ISBN 0-07-882476-1
26. Liberty, Jesse (2002). Programming C# (em inglês) 2ª ed. Beijing: O´Reilly. 629 páginas.
ISBN 0-596-00309-9
27. Lutz, Mark (2001). Programming Python (em inglês) 2ª ed. Beijing: O´Reilly. 1255 páginas.
ISBN 0-596-00085-5
28. Cade Metz (7 de julho de 2014). «The Next Big Programming Language You've Never
Heard Of» (http://www.wired.com/2014/07/d-programming-language/). Wired (em inglês).
Condé Nast Publications. "Today, Alexandrescu is a research scientist at Facebook, where
he and a team of coders are using D to refashion small parts of the company’s massive
operation."
29. Thomas, Dave (2002). Programming Ruby 1.9. The Pragmatic Programmers´Guide (em
inglês). Raleigh, North Carolina: O´Reilly. 930 páginas. ISBN 1-934356-08-5
30. Cooper, Torczon (2003). Engineering a Compiler (em inglês). San Francisco: Morgan
Kaufmann. p. 2. ISBN 1-55860-698-X
31. Aho, Alfred V.; Ullman, Jeffrey D. (1977). Principles of Compiler Design (em inglês).
Reading, Massachusetts, EUA: Addison-Wesley. p. 1. 604 páginas. ISBN 0-201-00022-9
32. Pacitti, Tércio; Aktinson, Cyril P; Teles, Antonio Anibal de Souza (autor do apêndice 4a)
(1983). Programação e Métodos Computacionais. 1 4ª ed. Rio de Janeiro: LTC. p. 293.
431 páginas. ISBN 85-216-0283-9
33. Scott, Michael L (2006). Programming Language Pragmatics (em inglês) 2ª ed. Boston:
Morgan Kauffman. p. 14-15. 875 páginas. ISBN 978-0-12-633951-2
34. Schildt, Herbert (2001). Java 2. The Complete reference (em inglês) 4ª ed. Berkeley:
McGraw-Hill. 1076 páginas. ISBN 0-07-213084-9
35. Engel, Joshua (1999). Programming for the Java Virtual Machine (em inglês). Reading,
Massachusetts: Addison & Wesley. p. 355. 488 páginas. ISBN 0-201-30972-6
36. Cough, John (2002). Compiling for the .NET Common Language Runtime (CLR) (em
inglês). Upper Saddle River: Prentice Hall. p. 2-12. 391 páginas. ISBN 0-13-062296-6
37. Holmes, Jim (1995). Object-Oriented Compiler Construction (em inglês). Englewood Cliffs,
Nova Jérsia: Prentice Hall. p. 2-3. 483 páginas. ISBN 0-13-630740-X
38. Dahl, O. J.; Dijkstra, E. W.; Hoare, C. A . R (1972). «I-Notes on Structured Programming».
Structured Programming (em inglês). London: Academic Press. p. 1-82. 220 páginas.
ISBN 0-12-200550-3
39. Knuth, Donald E (2003). «1-The Early Development of Programming Languages». Selected
Papers on Computer Languages (em inglês). Ventura Hall, Stanford: CSLI. p. 1-94.
594 páginas. ISBN 1-57586-382-0
40. Tucker, Allen; Noonan, Robert (2002). Programming Languages. Principles and paradigms
(em inglês). Boston: McGraw-Hill. p. 170-185. 411 páginas. ISBN 0-07-238111-6
41. O'Grady, Stephen (1 de março de 2021). «The RedMonk Programming Language Rankings:
January 2021» (https://redmonk.com/sogrady/2021/03/01/language-rankings-1-21/) (em
inglês). RedMonk. Consultado em 7 de março de 2021
42. Guezzi, Carlo; Jazayeri, Mehdi (1998). Programming Language Concepts (em inglês) 3ª ed.
New York: John Wiley & Sons. p. 7. 427 páginas. ISBN 0-471-10426-4
43. Wirth, Niklaus (1989). Programando em Modula 2. Rio de Janeiro: LTC. 207 páginas.
ISBN 85-216-0658-3
44. Silva, José carlos G.; Assis, Fidelis Sigmaringa G. de (1988). Linguagens de Programação.
Conceitos e Avaliação. Rio de Janeiro: McGraw-Hill/Embratel. p. 125. 213 páginas. CDD-
001.6424
45. Harbison, Samuel P (1992). Modula-3 (em inglês). New York: Prentice-Hall. 312 páginas.
ISBN 0-13-596404-0
46. Friedman, Daniel P.; Wand, Mitchell; haynes, Christopher T (1998). Essentials of
Programming Languages (em inglês). Cambridge, Massachusetts: MIT Press. p. 214.
536 páginas. ISBN 0-262-06145-7
47. Sommerville, Ian (2001). Software Engineering (em inglês) 6ª ed. Harlow: Addison-Wesley.
p. 272-273. 693 páginas. ISBN 0-201-39815-X
48. Bregalda, Paulo F.; Oliveira, Antonio A. F. de; Bornstein, Cláudio T (1988). Introdução à
Programação Linear 3ª ed. Rio de Janeiro: Campus. p. 61. 329 páginas. ISBN 85-7001-342-
6
49. «Sistema de classificação da ACM» (http://www.acm.uiuc.edu/signet/JHSI/cr.D.3.2.html) (em
inglês). acm.uiuc.edu. Consultado em 1 de dezembro de 2010
50. Appleby, Doris; VandeKopple, Julius J (1997). Programming Languages. Paradigm and
Practice (em inglês) 2ª ed. New York: McGraw-Hill. p. 8-13. 444 páginas. ISBN 0-07-
005315-4
51. «Overview - D Programming Language» (http://dlang.org/overview.html). dlang.org (em
inglês). Consultado em 28 de julho de 2014. "D programs can be written either in C style
function-and-data, C++ style object-oriented, C++ style template metaprogramming, or any
mix of the three."
52. Watt, David A (1990). «11-The Concurrent Programming Paradigm». Programming
Language Concepts and Paradigms (em inglês). New York: Prentice Hall. p. 205-218.
322 páginas. ISBN 0-13-728866-2
53. Abelson, Harold; Sussman, Gerald Jay; Sussman, Julie (1996). Structure and Interpretation
of Computer Programs (em inglês) 2ª ed. Cambridge, Massachusetts: McGraw-Hill. p. 352-
360. 640 páginas. ISBN 0-07-000484-6
54. Watt, David A (1990). «13-The Funcional Programming Paradigm». Programming Language
Concepts and Paradigms (em inglês). New York: Prentice Hall. p. 230-252. 322 páginas.
ISBN 0-13-728866-2
55. McCarthy, John; Abrahams, Paul W.; Edwards, Daniel J.; Hart, Timothy P.; Levin, Michael I
(1962). Lisp 1.5 Programmer´s Manual. Cambridge, Massachusetts: The MIT Press. p. 1.
106 páginas. ISBN 0-262-13011-4
56. Dybvig, R. Kent (1996). The Scheme Programming Language. Ansi Scheme. Nova Jérsia:
Prentice Hall PTR. ISBN 0-13-454646-6
57. Hudak, Paul (2000). Tha Haskell School of Expression. Learning Functional Programming
Through Multimedia. Cambridge: Cambridge University Press. 363 páginas. ISBN 0-521-
64408-9
58. Watt, David A (1990). «14-The Logic Programming Paradigm». Programming Language
Concepts and Paradigms (em inglês). New York: Prentice Hall. p. 253-265. 322 páginas.
ISBN 0-13-728866-2
59. Bratko, Ivan (2001). Prolog. Programming for Artificial Intelligence (em inglês) 3ª ed. Harlow,
England: Addison-Wesley. pp. 46–50. ISBN 0201-40375-7
60. Hill, Patricia; Lloyd, John (1994). The Gödel Programming Language (em inglês).
Cambridge: The MIT Press. 350 páginas. ISBN 0-262-08229-2
61. Finkel, Raphael A (1995). Advance Programming Language Design (em inglês). Menlo
Park, California: Addison-Wesley. p. 64. 480 páginas. ISBN 0-8053-1191-2
62. Guezzi, Carlo; Jazayeri, Mehdi (1985). Conceitos de Linguagens de Programação. Rio de
Janeiro: Campus. p. 55. 306 páginas. ISBN 85-7001-420-1
63. «Intel® 64 and IA-32 Architectures Developer's Manual: Vol. 2A» (https://www.intel.com/cont
ent/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-2
a-manual html) (em inglês)
a-manual.html) (em inglês)
Bibliografia
ORGANICK, E. I.;FORSYTHE, A. I.;PLUMMER, R. P. (1978). Programming Language
Structures. New York: Academic Press. 659 páginas. ISBN 0-12-528260-5
Ver também
Lista de linguagens de programação
Linguagem compilada
Linguagem de script
Linguagem interpretada
Paradigma de programação
Programação de computadores
Ligações externas
«Enciclopédia de linguagens de programação» (http://www.scriptol.com/programming/langu
ages.php) (em inglês)
Languages (https://dmoztools.net/Computers/Programming/Languages) no DMOZ
Obtida de "https://pt.wikipedia.org/w/index.php?title=Linguagem_de_programação&oldid=62333306"
Esta página foi editada pela última vez às 00h50min de 30 de outubro de 2021.
Este texto é disponibilizado nos termos da licença Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC BY-SA 3.0) da
Creative Commons; pode estar sujeito a condições adicionais. Para mais detalhes, consulte as condições de
utilização.
Política de privacidade
Sobre a Wikipédia
Avisos gerais
Programadores
E t tí ti
Estatísticas
Declaração sobre ''cookies''