Buscar

Cap 1 - Evolução das linguagens de programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PARADIGMAS DE LINGUAGEM DEPARADIGMAS DE LINGUAGEM DE
PROGRAMAÇÃOPROGRAMAÇÃO
EVOLUÇÃO DASEVOLUÇÃO DAS
LINGUAGENS DELINGUAGENS DE
PROGRAMAÇÃOPROGRAMAÇÃO
Autor: Esp.  Douglas Salvador
Revisor : Rafae l Rehm
IN IC IAR
introduçãoIntrodução
Nesta unidade, vamos conhecer as principais linguagens de programação e
suas características, bem como entender quais aspectos sintáticos e
semânticos são cruciais para o desenvolvimento de projetos de sistemas
computacionais. No princípio, as linguagens de programação eram somente
códigos, diferentes dos que são utilizados nos computadores atuais. A sua
história está intimamente ligada a história dos computadores, pois as
linguagens foram criadas justamente para que a interação homem-máquina
fosse possível, usando sequências lógicas para resolver problemas. Ao longo
dos tempos, diversas linguagens de programação foram criadas para um
propósito especí�co. Por isso, pode-se dizer que este é o motivo de existir
várias delas.
Do Tear Programável Jacquard criado no começo do século XIX pelo mecânico
francês Joseph Marie Jacquard, ao primeiro algoritmo criado por Ada
Lovelace, até George Boole, o inglês que criou um sistema lógico, no qual os
comandos e resultados das operações eram representados por uma chave de
dois números: 0 e 1, que são os códigos binários, utilizados até hoje no
hardware de todos os computadores.
A programação é uma atividade interessante que fornece resultados
instantâneos na maioria dos casos, com base nos programas criados. As
linguagens de programação evoluíram em grande medida nas últimas
décadas, da linguagem de programação de baixo nível cujo código-fonte é
formado por mnemônicos Assembly, para Kotlin e Swift, que possuem
suporte para a construção de abstrações de alto nível. Vamos ver a evolução
da linguagem de programação ao longo do tempo desde 1950. Como a�rma
 Silva (2014, p. 37):
As linguagens de programação clássicas mais conhecidas, e até
hoje utilizadas, são COBOL, Fortran, Pascal, é claro, a lendária
BASIC. Já entre as linguagens de programação modernas, as mais
conhecidas e utilizadas são C++, C, C#, Java, Visual Basic, XML,
Evolução dasEvolução das
PrincipaisPrincipais
Linguagens deLinguagens de
ProgramaçãoProgramação
(Parte I)(Parte I)
HTML, Perl, PHP e Javascript. Elas são chamadas de linguagem de
alto nível.
1951 – 1960: as linguagens desenvolvidas ao longo dessa década são
Fortran e COBOL, que estabeleceram as bases para uma evolução
futura. Linguagem Assembly – que é uma linguagem de programação
de baixo nível e é especí�ca para a arquitetura de computadores.
1961 – 1970: a linguagem mais importante lançada durante esse
período é SNOBOL, o sucessor do COBOL desenvolvido nos
laboratórios da AT&T Bell, por David J. Farber, Ralph E. Griswold e
Ivan P. Polonsky. O Simula é outra linguagem importante, pois o
Simula 67 foi desenvolvido pela primeira vez com o paradigma Object
Oriented Language (OOL). No �nal desta década, o PASCAL surgiu
como outra linguagem de programação promissora, introduzindo a
programação estruturada.
1971 – 1980: essa década introduziu o C, que ainda está sendo
amplamente utilizado para desenvolver programas especí�cos para
hardware. É uma das linguagens mais populares e ainda é usado
pelas principais indústrias. O SQL surgiu como o primeiro idioma
especí�co para gerenciar dados. Já o C ++ foi lançado no
encerramento desta década.
1981 – 1990: MATLAB, FoxPro e Objective C evoluíram como as
principais linguagens durante essa década, onde o MATLAB foi
amplamente utilizado para algoritmos e visualizações. FoxPro é uma
mistura de programas com conceitos de DBMS – Database
Management System e também é uma linguagem de programação
orientada a objetos. O Object C é uma linguagem de programação
orientada a objeto, que é utilizada principalmente pela Apple para o
desenvolvimento do OS X e iOS.
1991 – 2000: essa década introduziu linguagens muito interessantes,
começando com Python, que é amplamente usado como uma
alternativa ao PHP e Java. O Java foi lançado em meados dessa
década e logo se tornou o padrão de fato das empresas, devido aos
seus recursos de segurança embutidos.
Ruby é outra linguagem importante lançada em 1995 e atraiu
programadores do mundo inteiro. A estrutura do Rails abre portas
para o desenvolvimento de sites e aplicativos, simpli�cando tarefas
repetitivas.
O PHP também foi lançado no ano de 1995 e se tornou a opção
padrão para o desenvolvimento da Web devido à fácil curva de
aprendizado. Javascript e ActionScript também surgiram como
linguagens de front-end com foco na parte da interface do usuário.
2001 – 2010: O C # foi introduzido pela Microsoft no início desta
década e se tornou a opção dos programadores para o
desenvolvimento de aplicativos para desktop e Web. É orientado a
objetos e a sintaxe é um pouco mais próxima do Java. Go e Rust
foram lançados até o �nal dessa década, com foco na programação
do sistema e competentes entre si. Go é usado principalmente para o
desenvolvimento de microsserviços.
2011 – Presente: Kotlin surgiu como a principal alternativa ao Java. O
Kotlin está sendo amplamente utilizado para o desenvolvimento do
Android devido a sua sintaxe fácil em comparação ao Java. O Swift é
outra linguagem importante introduzida pela Apple como uma
alternativa ao Objective C. O Swift é mais fácil de aprender em
comparação ao Objective C e também precisa de menos código,
tornando-se uma escolha popular dos programadores para
desenvolver aplicativos iOS. Temos também o �utter que é a SDK
para aplicativos móveis do Google, ele é completo com recursos de
estrutura, widgets e ferramentas, que oferece aos desenvolvedores
uma maneira fácil de criar e implantar aplicativos móveis rápidos
visualmente atraentes nas plataformas Android e iOS.
Linguagens de Programação mais
utilizadas
A pesquisa anual para desenvolvedores da Stack Over�ow é a maior e mais
abrangente pesquisa de pessoas que codi�cam em todo o mundo. A cada
ano, a comunidade realiza uma pesquisa que abrange tudo, desde as
tecnologias favoritas dos desenvolvedores até suas preferências de trabalho.
A pesquisa apresenta   resultados anuais com uma amostragem de quase
90.000 desenvolvedores.
O resultado da pesquisa do ano de 2019 evidenciou algumas tendências,
como:
O Python como sendo a linguagem de programação que mais
cresceu no ano, pois subiu novamente no ranking das linguagens de
programação na pesquisa, superando o Java e permanecendo como
a segunda linguagem mais popular (atrás da Rust).
Mais da metade dos entrevistados haviam escrito sua primeira linha
de código aos dezesseis anos, embora essa experiência varia por país
e por gênero.
Os especialistas em DevOps e os engenheiros de software estão entre
os desenvolvedores mais bem pagos e experientes, mais satisfeitos
Quadro 1.1 -  Linguagens de programação mais populares em 2019
Fonte: Developer... ([s.d.], on-line).
com seus trabalhos e estão procurando novos trabalhos nos níveis
mais baixos.
Dos principais países da pesquisa, a China possui desenvolvedores
que são os mais otimistas, acreditando que as pessoas nascidas hoje
terão uma vida melhor do que seus pais. Desenvolvedores de países
da Europa Ocidental como França e Alemanha estão entre os menos
otimistas em relação ao futuro.
Ao pensar nos bloqueadores da produtividade, diferentes tipos de
desenvolvedores relatam diferentes desa�os. É mais provável que os
homens digam que ser o encarregado de um trabalho de
desenvolvimento é um problema para eles, enquanto os
entrevistados de minorias de gênero têm maior probabilidade de
dizer que ambientes de trabalho tóxicos são um problema.
Existem alguns outros fatores que poderiam ter impactado a popularidade
das linguagens de programação. A segurança inerente a linguagem escolhida
é um fator. Outro é o aumento da popularidade dos dispositivos móveis. Esse
é um fator importante quando se olha para a popularidade das linguagens de
programação, pois algumas são mais adequadas para o desenvolvimento de
aplicativosmóveis e usadas em dispositivos portáteis, como tablets e
smartphones.
Os dispositivos vestíveis que suportam nossas funções cotidianas estão
aumentando em popularidade, incluindo tudo, desde monitores de sono,
atividade física a relógios inteligentes e dispositivos vestíveis de postura. À
medida que a quantidade de dispositivos vestíveis aumenta em popularidade
acabam diminuindo os softwares padrão para desktop fazendo com que a
popularidade das linguagens de programação que podem suportar essa
demanda aumentem.
i
praticarVamos Praticar
As variáveis são muito utilizadas nas linguagens de programação, pois armazenam
tipos de dados especí�cos. Com base nisso, assinale a alternativa que indica qual
tipo de dados é usado para criar uma variável que deve armazenar texto em C++.
a) myString.
b) string.
c) Txt.
d) String.
e) pdf.
À medida que o foco de pro�ssionais e pesquisadores passou da
programação para o desenvolvimento de software em larga escala, as
linguagens de programação não parecem ser mais temas  tão centrais para a
Ciência da Computação. Como citam, Tucker e Noonan (2010):
As primeiras linguagens de programação foram as linguagens de
máquina e as linguagens assembly dos primeiros computadores,
começando na década de 1940. Centenas de linguagens de
programação e dialetos foram desenvolvidos desde então. A
maioria teve tempo de vida e utilidade limitados, enquanto
algumas tiveram amplo sucesso em um ou mais domínios de
aplicações. Muitas desempenharam um papel importante na
in�uência sobre o projeto de futuras linguagens.
Evolução dasEvolução das
PrincipaisPrincipais
Linguagens deLinguagens de
ProgramaçãoProgramação
(Parte II)(Parte II)
Brooks (1987) argumenta que, como a codi�cação ocupa apenas uma
pequena fração do tempo total necessário para o desenvolvimento do
projeto, os desenvolvimentos nas linguagens de programação não podem
levar a aumentos drásticos na produtividade do software. A suposição por
trás desse raciocínio é que a escolha do Paradigma de Linguagem afeta
apenas a fase de codi�cação do projeto. Por exemplo, se a codi�cação exigir
15% do tempo total do projeto, poderíamos deduzir que reduzir o tempo de
codi�cação para zero reduziria o tempo total do projeto em apenas 15%.
A manutenção, no entanto, é amplamente reconhecida como um
componente importante do desenvolvimento de software. As estimativas do
tempo de manutenção variam de "nos últimos 50%" (LIENTZ; SWANSON,
1980) a "entre 65% e 75%" (MCEE, 1984) do tempo total. Como a escolha do
Paradigma de Linguagem pode in�uenciar a facilidade de manutenção, os
autores sugerem que o Paradigma de Linguagem pode ter um efeito
signi�cativo no tempo total de desenvolvimento.
A Lei de Moore conceitua que a cada 18 meses a capacidade de
processamento e armazenamento dos transistores dobra e o custo de
fabricação se mantém, quem profetizou tal acontecimento foi Gordon Earle
Moore, em 1965. Estudiosos a�rmavam que essa lei não se concretizaria e
decretavam o �m da Lei de Moore. Mas até hoje ela continua se cumprindo.
Figura 1.2 - Histórico das linguagens de programação
Fonte: Watt (1991, p. 96).
Essa lei tem direta relação com a motivação para o desenvolvimento de novas
linguagens de programação nas últimas décadas, pois devido à rápida
evolução e fácil acesso ao poder computacional ampliado, uma quantidade
maior de pessoas e empresas pode participar da construção de novos
cenários para as linguagens de programação, como, por exemplo na:
inteligência arti�cial, educação, ciência e engenharia, sistemas de informação,
sistemas e rede, world wide web. Para cada uma dessas áreas existem desa�os
diferentes, portanto as comunidades que se desenvolveram em torno delas
também possuem objetivos computacionais e projetos de linguagem
especí�cos (TUCKER; NOONAN, 2010).
praticarVamos Praticar
Idioma que apareceu em 1985, originalmente para criar bancos de dados e
programas de negócios operados principalmente no DOS. Qual linguagem (de script)
de computador (programação) é descrita aqui?
a) COBOL.
b) Logo.
c) Pascal.
d) Haskell.
e) Clipper.
Nesta seção, revisaremos brevemente as contribuições que a teoria fez para o
desenvolvimento de Linguagens de Programação e discutiremos a
importância e a relevância dessas contribuições.
Questões Sintáticas e Lexicais
Existe um grande conhecimento construído sobre linguagens formais, uma
hierarquia de idiomas (a "hierarquia de Chomsky") e, associada a cada nível
da hierarquia, máquinas formais que podem "reconhecer" as linguagens
Aspectos SintáticosAspectos Sintáticos
e Semânticose Semânticos
Básicos deBásicos de
Linguagem deLinguagem de
ProgramaçãoProgramação
(Parte I)(Parte I)
correspondentes e executar outras tarefas. Os dois primeiros níveis da
hierarquia são os mais familiares aos programadores: linguagens regulares e
autômatos de estados �nitos; e linguagens sem contexto e autômatos push-
down. Linguagens de Programação típicas possuem gramáticas livres de
contexto (ou quase livres de contexto), e seus tokens, ou lexemes, podem ser
descritos por uma linguagem comum. Consequentemente, os programas
podem ser divididos em lexemes por um autômato de estado �nito e
analisados por um autômato push-down. Pode parecer, então, que o
problema do projeto de Linguagem de Programação nesse nível está
"resolvido". Infelizmente, há exceções.
A gramática do C ++, por exemplo, não é livre de contexto. Isso di�culta
desnecessariamente a construção de um analisador de C ++ e explica o lento
reflitaRe�ita
A execução de programas que
recebem entradas de dados de forma
remota pela internet, requer
informações precisas e garantias
sobre a segurança e con�abilidade
desses programas. O Java foi
projetado levando em consideração
esses dois requisitos básicos, na sua
opinião, os recursos para garantir a
segurança são primordiais para uma
linguagem de programação?
desenvolvimento de ferramentas de programação em C ++. O pré-
processador é outro obstáculo que afeta os ambientes de desenvolvimento
de programas em C e C ++.
praticarVamos Praticar
A Linguagem Pascal, que segue o paradigma de programação imperativa, foi
desenvolvida nos anos entre 1968 a 1970 e em 1970 foi disponibilizado o primeiro
compilador para a linguagem. Essa linguagem possui algumas limitações, como: não
reconhecer diretivas de compilação e suportar pouca memória, se comparado a
outros compiladores. Utilizando a linguagem pascal, crie um algoritmo que após a
entrada de valor de um número é retornada uma mensagem informando se o
número é positivo ou negativo. Para isso, você pode utilizar a IDE PascalZim, que é
um ambiente integrado a um compilador da linguagem Pascal para auxiliá-lo(a) no
processo. Vamos praticar.
Existem muitos tipos de semântica, incluindo: algébrica, axiomática,
denotacional, operacional e outros. Eles não são competitivos, mas
complementares. Existem muitas aplicações de semântica, e um sistema
semântico especí�co pode ser mais ou menos apropriado para uma tarefa
especí�ca. Por exemplo, uma semântica denotacional é um mapeamento da
construção de um programa para entidades matemáticas abstratas, que
representam o "signi�cado" das construções. A semântica denotacional é uma
linguagem e�caz para a comunicação entre o designer e os implementadores
de um Linguagem de Programação, mas geralmente não é de grande
interesse para um programador que usa uma determinada   Linguagem de
Aspectos SintáticosAspectos Sintáticos
e Semânticose Semânticos
Básicos deBásicos de
Linguagem deLinguagem de
ProgramaçãoProgramação
(Parte II)(Parte II)
Programação. Uma semântica axiomática, por outro lado, não é muito útil
para um implementador, mas pode ser muito útil para um programador que
deseja provar a correção de um programa. As ideias básicas da semântica
denotacional são devidas a Landin (1965) e Strachey (1966). A inscrição mais
completa foi concluída por Milne (1976) após a morte de Strachey. A
semântica denotacional é umapoderosa ferramenta descritiva: fornece
técnicas para mapear quase qualquer recurso de  Linguagem de Programação
em uma função matemática de alta ordem. A semântica denotacional se
desenvolveu como uma técnica descritiva e foi estendida para lidar com
recursos cada vez mais misteriosos, como saltar para blocos. Ashcroft e
Wadge publicaram um artigo interessante (1982), observando que os recursos
das   Linguagens de Programação que eram fáceis de implementar eram
muitas vezes difíceis de descrever e vice-versa. Eles sugeriram que a
semântica denotacional devesse ser usada prescritivamente e não
descritivamente. Em outras palavras, um designer de   Linguagem de
Programação, deve começar com uma semântica denotacional simples e
depois descobrir como implementar a linguagem – ou talvez deixar essa
tarefa para os implementadores.   Veja, a seguir, algumas linguagens de
programação, sua história seu surgimento e as principais personalidades da
história da computação.
Alan
Turing
Até a metade do século, os
computadores eram para �ns militares
e depois começaram a surgir os
Uma linguagem de programação é um formalismo arti�cial no qual algoritmos
podem ser expressos. Apesar de toda a sua arti�cialidade, esse formalismo
continua sendo uma linguagem. Seu estudo pode fazer bom uso dos muitos
conceitos e ferramentas desenvolvidos no século passado em linguística (que
estuda línguas naturais e arti�ciais). Sem entrar em grandes detalhes, este
capítulo apresenta o problema do que signi�ca “dar” (de�nir ou entender)
uma linguagem de programação e quais ferramentas podem ser usadas
nessa tarefa.
Cada linguagem de programação possui recursos e ferramentas especí�cas
para atender ao objetivo pelo qual ela foi criada, mas existem alguns tipos de
otimizações que podem ser feitos ao gerar o código através dessas
linguagens. Segue algumas operações que podem ser executadas:
Remoção de código inútil (remoção de código morto). Ou seja,
remoção de partes do código que nunca vão ser executados porque
não há uma sequência de execução que possa atingir com eles.
Expansão em linha de chamadas de função. Algumas chamadas de
função (procedimento) podem ser substituídas pelo corpo da função
eletrônicos. Alan Turing foi um famoso
cientista, pioneiro nos estudos sobre
computadores. Ele contribuiu para os
conceitos de algoritmo e computação,
principalmente com a Máquina de
Turing.
freepik.c
associada, tornando a execução mais rápida. Isso também possibilita
outras otimizações.
Fatoração de subexpressão. Alguns programas calculam o mesmo
valor mais do que uma vez. Se e quando esse fato for descoberto
pelo compilador, o valor da subexpressão comum poderá ser
calculado apenas uma vez e depois armazenado.
Otimizações de loop. As iterações são os locais onde as maiores
otimizações podem ser realizadas. Entre essas, a mais comum
consiste em remover de dentro um loop o cálculo de subexpressões
cujo valor permanece constante durante interações diferentes.
praticarVamos Praticar
Um recurso importante para as linguagens de programação é o comentário, que
serve para que o compilador desconsidere as linhas comentadas bem como para
que o programador possa documentar o código. Nesse sentido, assinale a
alternativa correta para comentários no código em Java.
a) ) # Este é um comentário.
b) /* Este é um comentário.
c) //  Este é um comentário.
d) <!-- Este é um comentário -->
e) + Este é um comentário
indicações
Material
Complementar
FILME
Piratas da informática
Ano: 1999
Comentário: O �lme retrata a história de Steve Jobs e
Bill Gates em sua jornada para a criação de
computadores e sistemas operacionais destinados ao
uso pessoal e não somente para o trabalho ou
pesquisa. Os dois foram os líderes da mudança de
conceito no uso da computação para �ns pessoais.
Para conhecer mais sobre o �lme, acesse o trailer a
seguir.
TRA ILER
LIVRO
O Programador Pragmático
Editora: Grupo A Selo: Bookman
Andrew Hunt e David Thomas
ISBN: 9788577807000
Comentário: Este livro traz inúmeras boas práticas
para o desenvolvimento de software, também evidencia
quais são as armadilhas que devemos conhecer ao
projetar sistemas. É considerado um livro de cabeceira
pela maioria dos programadores e pode ajudar muito a
delinear a carreira de programadores iniciantes.
conclusão
Conclusão
Muita coisa mudou na última década, e mais mudanças ocorrerão à medida
que avançamos em direção a um futuro cada vez mais conectado pela
tecnologia e pela evolução exponencial da capacidade de processamento e
armazenamento computacional. Por enquanto, as linguagens mais versáteis e
seguras continuarão sendo as mais amplamente usadas, mas quem sabe
como será o futuro da programação, especialmente com os contínuos
avanços da engenharia e robótica. O futuro é tão aberto de possibilidades
quanto nossa imaginação criativa pode conceber. Sabe-se que a linguagem
natural do ser humano está sendo amplamente estudada para que seja
utilizada cada vez mais nos processos de interfaceamento de tecnologia com
métodos de comunicação cada vez mais aperfeiçoados ao modelo de vida
atual, o futuro trará grandes desa�os e muito aprendizado para os
programadores que desejam desbravar os novos paradigmas de linguagem
que estão para surgir.
referências
Referências
Bibliográ�cas
ASHCROFT, E.; WADGE, W. Rx for semantics. ACM Trans. Programming
Languages and Systems, 4(2), p. 283–294, 1982.
BROOKS, F. P. No silver bullet: Essence and accidents for software
engineering. IEEE Computer, 20(4), p. 10-18, abril, 1987.
DEVELOPER Survey Results 2019. Stackover�ow. [s.d.]. Disponível em:
https://insights.stackover�ow.com/survey/2019#technology. Acesso em: 07
maio 2020.
LANDIN, P. J. A correspondence between Algol 60 and Church’s lambda-
notation. Communications of the ACM, n. 8, p. 89-101, p. 158-165, agosto,
1965.
LIENTZ, B. P.; SWANSON, E. B. Software Maintenance Management.
Addison Wesley, 1980.
MCKEE, J. R. Maintenance as a function of design. Proc. AFIPS National
Computer Conference, p. 187-93, p. 1984.
MILNE, R. E.; STRACHEY, C. A Theory of Programming Language Semantics.
John Wiley, 1976.
SILVA, E. L. da. Programação de Computadores. São Paulo: Pearson, 2014.
168p.
STACKOVERFLOW (ed.). Developer Survey Results 2019. 2019. Disponível em:
<https://insights.stackover�ow.com/survey/2019#technology>. Acesso em: 20
abr. 2020.
STRACHEY, C. Towards a formal semantics. In: STEEL, T. B. (ed.). Formal
Language Description Languages for Computer Programming. North-
Holland, 1966.
TUCKER, A. B.; NOONAN, R. E. Linguagens de Programação: princípios e
paradigmas. 2. ed. Porto Alegre: Amgh, 2010. 599p.
https://insights.stackoverflow.com/survey/2019#technology
https://insights.stackoverflow.com/survey/2019#technology

Outros materiais