Você está na página 1de 10

14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre

Linguagem de programação
Origem: Wikipédia, a enciclopédia livre.
A linguagem de programação é um método padronizado
para comunicar instruções para um computador.[1] É um
conjunto de regras sintáticas e semânticas usadas para definir
um programa de computador.[2][Nota 1] Permite que um
programador especifique precisamente sobre quais dados um
computador vai atuar, como estes dados serão armazenados ou
transmitidos e quais ações devem ser tomadas sob várias
circunstâncias. Linguagens de programação podem ser usadas
para expressar algoritmos com precisão.

O conjunto de palavras (lexemas classificados em tokens),


compostos de acordo com essas regras, constituem o código fonte Trecho de programa na linguagem de
de um software.[3] Esse código fonte é depois traduzido para programação C.
código de máquina, que é executado pelo microprocessador.[3]

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.

Linguagens de programação também tornam os programas menos dependentes de computadores ou ambientes


computacionais específicos (propriedade chamada de portabilidade[5]). Isto acontece porque programas escritos em
linguagens de programação são traduzidos para o código de máquina do computador no qual será executado em vez de ser
diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta
independência da máquina onde seria executada.[6][7]

Í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

https://pt.wikipedia.org/wiki/Linguagem_de_programação 1/10
14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre

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 batizada em homenagem a esta
primeira programadora.[11]

Uma das primeiras linguagens de


Grace Hopper em 1984.
programação para computadores
foi provavelmente Plankalkül,
Ada Lovelace em 1840. criada por Konrad Zuse na 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 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]

https://pt.wikipedia.org/wiki/Linguagem_de_programação 2/10
14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre

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]

Se o método utilizado traduz todo o texto do programa (também chamado de código), para só
depois executar[Nota 3] o programa, então diz-se que o programa foi compilado e que o mecanismo
utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa).[31]
A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser
executado um número indefinido de vezes sem que seja necessária nova compilação, o que
compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal[32] e C.

Se o texto do programa é executado à medida que vai sendo traduzido, como em JavaScript, BASIC,
Python ou Perl, num processo de tradução de trechos seguidos de sua execução imediata, então diz-
se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um
interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são
também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente.[33]

Embora haja essa distinção entre linguagens interpretadas e compiladas, as coisas nem sempre são
O processo da tão simples. Há linguagens compiladas para um código de máquina virtual (sendo esta máquina
compilação. virtual apenas mais um software, que emula a máquina virtual sendo executado em uma máquina
real), como Java[34] (compila para a plataforma Java[35]) e C# (compila para a plataforma CLI[36]).
E também há outras formas de interpretar em que os códigos fontes, ao invés de serem interpretados linha-a-linha, têm
blocos "compilados" para a memória, de acordo com as necessidades, o que aumenta a performance dos programas
quando os mesmos módulos são chamados várias vezes, técnica esta conhecida como JIT.

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]

Conceitos

Programação estruturada

https://pt.wikipedia.org/wiki/Linguagem_de_programação 3/10
14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre

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
Programação modular é uma forma de programação no qual o desenvolvimento
das rotinas de programação é feito através de módulos, que são interligados entre
si através de uma interface comum.[42] Foi apresentado originalmente pela
Information & Systems Institute, Inc. no National Symposium on Modular
Programming em 1968, com a liderança de Larry Constantine. Exemplos de
linguagens que orientaram seu projeto para este aspecto estão as linguagens
Modula-2,[43][44] desenvolvida por Niklaus Wirth e a Modula-3.[45]

Niklaus Wirth em 2005. Criador


Programação orientada a objetos da linguagem Pascal entre
outras.
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 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

https://pt.wikipedia.org/wiki/Linguagem_de_programação 4/10
14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre

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
A ACM mantém um sistema de classificação[49] com os seguintes sub-itens:

Linguagens aplicativas, ou de aplicação


Linguagens concorrentes, distribuídas e paralelas
Linguagens de fluxo de dados
Linguagens de projeto
Linguagens extensíveis
Linguagens de montagem e de macro
Linguagens de microprogramação
Linguagens não determinísticas
Linguagens não procedurais
Linguagens orientadas a objeto
Linguagens de aplicação especializada
Linguagens de altíssimo nível[Nota 6]

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:

O paradigma procedural. Neste paradigma, os programas são executados através de chamadas sucessivas a
procedimentos separados. Exemplos de linguagens deste paradigma são o Fortran e o BASIC.
O paradigma de estruturas de blocos.[50] A característica marcante deste paradigma são os escopos aninhados.
Exemplos de linguagens deste paradigma são o Algol 60, Pascal[32] e C.
O paradigma de orientação a objetos. Este paradigma descreve linguagens que suportam a interação entre objetos.
Exemplos de linguagens deste paradigma são C++,[25] linguagem D,[51] Java, Python[27] e Ruby.[29]
O paradigma da computação distribuída. Este paradigma suporta que mais de uma rotina possa executar
independentemente.[52] Um exemplos de linguagem deste paradigma é a linguagem Ada.

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

https://pt.wikipedia.org/wiki/Linguagem_de_programação 5/10
14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre
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]

Quanto a estrutura de tipos


As linguagens de progração podem ser definidas de duas formas ortogonais quanto a sua estrutura de tipos.

Forte ou Fracamente Tipada

Fracamente tipada, como PHP e Smalltalk, onde o tipo da variável muda dinamicamente conforme a situação.
Fortemente tipada, como Java, Ruby e Python onde o tipo da variável, uma vez atribuído, se mantém o mesmo até
ser descartada da memória.[61]

Dinâmica ou Estaticamente Tipada

Dinamicamente tipada, como SNOBOL, APL, Awk, Perl, Python e Ruby, onde o tipo da variável é definido em tempo
de execução.[61]
Estaticamente tipada, como Java e C, onde o tipo da variável é definido em tempo de compilação.[62]

Quanto ao grau de abstração


Linguagem de programação de baixo nível, cujos símbolos são uma representação direta do código de máquina que
será gerado, onde cada comando da linguagem equivale a um "opcode" do processador, como Assembly.[63]
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++
Linguagem de programação de alto nível, composta de símbolos mais complexos, 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.[63]

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,[64] 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.[64]
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.[64]
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.[64]
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.[64]

https://pt.wikipedia.org/wiki/Linguagem_de_programação 6/10
14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre

Quinta geração - Nesta geração, Maclennan agrupa diversos paradigmas como a orientação a objeto e o paradigma
funcional, paradigma lógico.[64]
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.[65]

Primeira geração - linguagem de máquina.


Segunda geração - linguagens de montagem (assembly).
Terceira geração - Linguagens procedurais.
Quarta geração - Linguagens aplicativas.
Quinta geração - Linguagens voltadas a Inteligência artificial como as linguagens lógicas (Prolog) e as linguagens
funcionais (Lisp).
Sexta geração - Redes neurais.
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 várias linguagens de programação; de acordo com o Índice Tiobe, as 20
mais populares são:[41]

11. Swift
1. Java
12. Objective-C
2. C
13. Assembly
3. C++
14. Perl
4. Python
15. Ruby
5. C#
16. Delphi / Object Pascal Livros sobre diversas linguagens
6. JavaScript
17. Go de programação
7. Visual Basic .NET
18. Scratch
8. R
19. PL/SQL
9. PHP
20. Visual Basic
10. MATLAB

Notas
1. Edsger Dijkstra em seu livro A Discipline of Programming assim define as linguagens de programação: "Eu vejo uma
linguagem de programação principalmente como um veículo para a descrição (potencialmente muito sofisticada) de
mecanismos abstratos" Dijkstra, Edsger W (1976). A Discipline of Programming (em inglês). Englewood Cliffs, New
Jersey: Prentice Hall. p. 9. 217 páginas. ISBN 0-13-215871-X
2. Para um mapa abrangente da história das linguagens de programação ver: «Mapa da história das linguagens de
programação» (http://www.levenez.com/lang/history.html) (em inglês). Consultado em 1 de dezembro de 2010
3. ou rodar, como se diz no jargão da computação
4. Veja também Compilador.
5. Citação de Knuth do memorando de Curry: "O primeiro passo no planejamento do programa é o de analisar a
computação em certas partes principais, chamadas aqui de divisões, de modo que o programa possa ser sintetizado
a partir delas. As partes principais devem ser tais que, ou pelo menos algumas delas, são cálculos independentes
em si próprios, ou modificações desses cálculos." em: Knuth, Donald E (2003). «1-The Early Development of
Programming Languages». Selected Papers on Computer Languages (em inglês). Ventura Hall, Stanford: CSLI.
p. 17. 594 páginas. ISBN 1-57586-382-0
6. Sussman et al. menciona que as linguagens de altíssimo nível são programadas em termos de sentenças
declarativas. Em: Abelson, Harold; Sussman, Gerald Jay; Sussman, Julie (1996). Structure and Interpretation of
Computer Programs (em inglês) 2ª ed. Cambridge, Massachusetts: McGraw-Hill. p. 22. 640 páginas. ISBN 0-07-
000484-6
7. Muitos autores classificam as linguagens quanto ao grau de abstração em apenas dois: alto e baixo. Alguns autores
como Dennis Ritchie e Kenneth Thompson classificam algumas linguagens como C e CPL tanto como baixo nível
https://pt.wikipedia.org/wiki/Linguagem_de_programação 7/10
14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre

como alto nível como em: Appleby, Doris; VandeKopple, Julius J (1997). Programming Languages. Paradigm and
Practice (em inglês) 2ª ed. New York: McGraw-Hill. p. 132-134. 444 páginas. ISBN 0-07-005315-4

Referências
1. 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
2. Fischer, Alice E.; Grodzinsky, Frances (1993). The Anatomy of Programming Languages (em inglês). Englewood
Cliffs, New Jersey: Prentice Hall. p. 3. 557 páginas. ISBN 0-13-035155-5
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
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, New
Jersey: 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://ww
w.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.worldcat.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, New Jersey: 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
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

https://pt.wikipedia.org/wiki/Linguagem_de_programação 8/10
14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre

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.co
m/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 Jersey: 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. «TIOBE Index» (https://www.tiobe.com/tiobe-index/) (em inglês). www.tiobe.com. Consultado em 11 de dezembro de
2017
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

https://pt.wikipedia.org/wiki/Linguagem_de_programação 9/10
14/08/2019 Linguagem de programação – Wikipédia, a enciclopédia livre

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. New Jersey: 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 Texto "isbn 0-262-08229-2" ignorado (ajuda)
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. Sethi, Ravi (1996). Programming Languages. Concepts & Constructs (em inglês) 2ª ed. Reading, Massachusetts:
Addison-Wesley. p. 4-8. 640 páginas. ISBN 0-201-59065-4
64. Maclennan, Bruce J (1999). Principles of Programming Languages. Design, Evaluation and Implementation (em
inglês) 3ª ed. Oxford: Oxford University Press. p. 92;163-164;208;305-306. 509 páginas. ISBN 0-19-511306-3
65. Bal, Henri E.; Grune, Dick (1994). Programming Language Essentials (em inglês). Wokingham: Addison-Wesley.
p. 10-11. 231 páginas. ISBN 0-201-63179-2

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/languages.php) (em inglês)
Programmer's Wiki (http://code.wikia.com/wiki/Programmer%27s_Wiki) (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=55945600"

Esta página foi editada pela última vez às 16h22min de 9 de agosto de 2019.

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.

https://pt.wikipedia.org/wiki/Linguagem_de_programação 10/10

Você também pode gostar