Buscar

Aula 1 - Paradigmas de 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 18 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 18 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 18 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 linguagens de programação
Aula 1: Introdução a linguagens de programação
Apresentação
Nesta aula, listaremos as razões para aprender e ampliar os conhecimentos sobre linguagens de programação (LPs). Será
igualmente importante reconhecer o papel das LPs nos diferentes momentos do processo de desenvolvimento de
software: concepção, análise, projeto, programação, testes e manutenção.
A partir da crise do software, a produtividade e (consequentemente) o aproveitamento do tempo do programador
passaram a ganhar muita importância. Precisaremos, portanto, conhecer as propriedades desejáveis de uma linguagem
de programação (LP). Por �m, identi�caremos os critérios que in�uenciam o projeto de uma LP, como a arquitetura do
computador e as técnicas de programação.
Objetivos
Reconhecer as razões para estudar LPs em função de seu papel no processo de desenvolvimento de software;
Identi�car as propriedades desejáveis em uma LP;
Relacionar os fatores que in�uenciam o projeto de uma LP.
As razões para estudar linguagens de programação (LPs)
Ofereço uma questão para que você re�ita e responda durante os seus estudos:
Quem nasceu primeiro, as LPs ou as técnicas de análise e projeto de
sistemas?
Sob outra perspectiva, pode-se questionar:
Quem precisou existir primeiro?
 LEGENDA
O que é uma Linguagem de programação (LP)?
Uma LP também é um software, ou seja, um programa de computador, cuja �nalidade é permitir que os programadores
escrevam seus programas. Em outras palavras, trata-se de um software que permite novos programas serem escritos.
Os ambientes de desenvolvimento evoluíram ao longo dos anos; hoje em dia, eles apresentam-se como sendo de boa
usabilidade, facilitando cada vez mais a vida dos programadores e permitindo diferentes níveis de acesso aos serviços do
sistema operacional e ao hardware. Para ser produtivo na escrita dos programas necessários, o programador precisa conhecer
a fundo essa linguagem em relação a:

Suas propriedades

Os tipos de dados manipulados

Suas instruções

Sua sintaxe, que precisa ser dominada

Seu conjunto de símbolos e regras para
formação dos comandos ou instruções da
linguagem
Para se escrever um programa de computador ou um software, será preciso conhecer a sintaxe e a semântica dos comandos
de uma LP, que compreende um conjunto limitado de instruções ou comandos. As LPs manipulam determinados tipos de
dados, umas oferecendo mais recursos que outras.
Comentário
Cada instrução do programa determina uma ação que o hardware deve fazer. Por isso, uma LP deve apoiar determinado(s)
sistema operacional(is) e ser executada em hardwares bem especí�cos.
 O papel da abstração nas LPs
 Clique no botão acima.
A abstração permeia toda a programação. As primeiras LPs, porém, não reconheciam o papel crucial que ela
desempenha em programação. Por exemplo, no início da década de 1950, o único mecanismo de abstração fornecido
pelas linguagens de montagem eram os nomes simbólicos. O programador usava comandos com nomes – de certa
forma, autoexplicativos – para nomear instruções, enquanto o endereçamento de memória era realizado em
hexadecimal. O programador não se atentava a esses detalhes que constituem o funcionamento do hardware: uma
sequência de bits que representa os comandos e as posições de memória.
A linguagem de montagem (Assembly) melhorou a vida do programador, porém obrigava-o a escrever uma linha de
código para cada instrução que a máquina deveria executar, forçando-o a pensar como se também fosse uma
máquina ao executar a instrução passo a passo conforme seu ciclo (Fetch).
As LPs de alto nível já estavam um passo adiante com as chamadas linguagens imperativas. A essa altura, o
programador passava a ter um alto poder de abstração para escrever seus códigos de programas. As instruções eram
em linguagem bem próxima à do homem (inglês, uma língua considerada universal). Cada comando, por sua vez, era
capaz de executar mais de uma instrução primária do hardware, aumentando a e�ciência da linguagem e do
processamento à medida que era possível escrever menos para executar o mesmo código na linguagem Assembly.
A imagem a seguir ilustra um programa cuja �nalidade é trocar de conteúdo dois elementos seguidos de um vetor:
Coluna à direita: Apresenta o código em linguagem de máquina, difícil de escrever e de compreender;
Coluna do meio: Código equivalente na linguagem Assembly, que é um pouco mais amigável, embora ainda seja
considerada complexa para a escrita de programas maiores;
Coluna à esquerda: Código em linguagem C, de alto nível, bem mais compreensível e fácil de escrever.
Linguagem de alto
nível
Linguagem Assembly (montagem) - mips -
Unix
Linguagem de Máquina
Swap (int[], int k)
{ int temp;
temp = v[k]
v[k+1] = temp
}
Swap :
Muli $2,$5,4
Add $2,$4,$2
Lw $15,0($2)
Lw $16,0($2)
Sw $16,0($2)
Sw $15,4($2)
Jr $31
00001000100111111111111111111111
000000000011100010100000000111000
100000100000010000000010000000100
00000001000000001000000001000000
0000000100000001000000001000000
10000010000001111100000110000000
1111111000000100010111000100100
Repare a relação de paridade entre a quantidade de linhas de código do programa em linguagem de máquina e do
mesmo código em linguagem Assembly.
O ambiente operacional da LP
O ambiente de desenvolvimento em uma LP precisa “dialogar bem” tanto com o sistema operacional quanto com o hardware,
possibilitando acesso a rotinas especí�cas do sistema operacional e elementos restritos do hardware. Ou seja, uma LP deve
atuar em ambiente operacional:
Windows Linux Mac
IOS Android
Uma LP pode atender a diferentes famílias de processadores, tendo um ambiente compatível, por exemplo, com a família Intel
ou com processadores Risc. Ela terá de prover a linguagem nessas duas versões. Se uma linguagem precisa atender a dois
ambientes operacionais, como Windows e Linux, ela deverá rodar em ambos de maneira distinta.
Hardware
Compreende todos os recursos físicos do sistema computacional, como processador, memória, discos etc. Quando proferimos
a frase “meu computador está muito lento”, estamos nos referindo à lentidão do hardware.
Há uma relação intrínseca entre LPs, sistema operacional, arquitetura e conjunto de instruções do hardware. Conforme ilustra a
�gura a seguir, uma LP atende a um sistema operacional especí�co e ao conjunto de hardware que esse sistema operacional
gerencia:



Hardware

SO

LP
 ENIAC: O primeiro computador
 Clique no botão acima.
ENIAC: O primeiro computador
Desenvolvido na época da Segunda Guerra Mundial, o primeiro computador, denominado ENIAC (em inglês, electrical
numerical integrator and computer), realizava com precisão cálculos balísticos. Ocupando um espaço equivalente a
270 metros quadrados, ele pesava 30 toneladas. Nessa época, as instruções para os cálculos não eram especi�cadas
em uma LP: cada instrução era identi�cada por diferentes conexões de �os, relês e sequências de chaves. O ENIAC
começou a ser desenvolvido em 1943 e �cou pronto três anos depois. A imagem a seguir o mostra em funcionamento:
Desde a criação do ENIAC até os dias de hoje, 73 anos se passaram: os dispositivos deixaram de ocupar cerca de 200
m2 para caberem na palma da mão, pesarem poucos gramas e terem muito mais capacidade de processamento e
armazenamento (memória RAM e discos).
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Por que estudar LP?
O estudante que se dispuser a gastar seu tempo aprendendo LPs terá as seguintes vantagens:
1. Maior capacidade de desenvolver soluções em termos de programas. Uma compreensão maior dos conceitos de uma LP
pode aumentar a habilidade dos programadores para pensar e estruturar a solução de um problema.
2. Maior habilidade para programar em linguagem, conhecendo melhor seu potencial e podendo construir programas
melhores e mais e�cientes.
3. Maiores chances de acerto na escolha da linguagem mais adequada por se conhecer os recursos dessa linguagem e
como ela implementará tais recursos.
4. Maior habilidadepara aprender novas linguagens. Quem domina os conceitos do paradigma orientado a objeto tem mais
aptidão para aprender C++, C# e Java.
5. Um amplo conhecimento dos recursos da LP reduz as limitações na programação.
6. Maior probabilidade para projetar novas LPs.
Quanto maior for o leque de linguagens que uma pessoa conhecer e
puder praticar, maiores serão as chances de conhecer as
propriedades superlativas daquela linguagem.
O objetivo das LPs é tornar o trabalho dos programadores o mais produtivo possível não apenas na fase de codi�cação ou
programação, mas também ao longo do processo de desenvolvimento, indicamos abaixo:
Clique nos botões para ver as informações.
Ajuda a entender restrições, como a necessidade de desenvolver na linguagem X. Nesta etapa, o conhecimento de LPs
ajudará caso seja necessário avaliar a viabilidade de desenvolvimento do software (há tecnologia disponível, essa é a
questão).
Fase: Concepção 
Neste momento, a LP não in�uencia, pois é o momento de conhecermos os usuários e suas necessidades. No entanto,
também é o momento para de�nirmos a técnica de análise a ser usada, o que in�uencia a escolha da LP. Por exemplo, se
for escolhida a técnica de orientação a objetos, apenas LPs que atenderem a esse paradigma vão concorrer na escolha da
LP.
Fase: Análise 
Oferece suporte às técnicas e ao método do projeto, pois, assim, a implementação re�etirá o seu projeto. Neste momento,
estamos mais voltados aos aspectos tecnológicos. Conforme o tipo de sistema, o projeto pode demandar LPs especí�cas
ou um grupo seleto de linguagens para selecionar uma delas. Nesta fase, faremos a escolha da LP para desenvolver o
sistema, ou seja, é uma fase em que a linguagem in�uencia e sofre in�uência.
Fase: Projeto de software 
Etapa em que a LP é fundamental e faz a diferença com relação à produtividade.
Fase: Implementação 
As linguagens, se possuírem os recursos adequados, podem ajudar na validação do código, como num trace de erro ou
procedimento de depuração.
Fase: Validação 
Esta fase será bene�ciada quando a LP oferecer bons recursos de modularização e outros que permitam a escrita de
programas mais fáceis de serem mantidos e com maior longevidade, maximizando sua utilização ao longo do tempo.
Fase: Manutenção 
 (Fonte: Shutterstock)
As mudanças no ambiente das LPs
Muitas LPs já foram escritas. Algumas permanecem ativas até hoje, como o Cobol, que predominou na programação de
aplicativos comerciais de grandes corporações cujas existências foram desenvolvidas, desde o início, com computadores de
grande porte, os chamados mainframes.
Exemplo
O Fortran era bastante usado nos anos 1970 para cálculos e propósito geral. Já o Basic surgiu nos anos 1970 e 1980 com o
advento da microcomputação.
A linguagem claramente evoluiu, tornando-se atual, bonita visualmente e com técnicas de arrastar e colar para a criação das
interfaces. Essa nova maquiagem deu sobrevida a programas escritos há anos. Outras linguagens, no entanto, já
desapareceram – não há mais quem programe nelas.
 Por que isso acontece?
 Clique no botão acima.
Por que isso acontece?
Antigamente não havia tantas linguagens de programação de propósito geral que implementassem, por exemplo,
orientação a objeto; portanto, as escolhas eram mais limitadas. Hoje em dia, quem escolher Java, C#, C++, Delphi ou
Phyton pode desenvolver aplicativos de propósitos gerais com muitos recursos disponíveis, sem que haja muita
diferença dependendo do contexto e da aplicação.
Por outro lado, devemos considerar a maior diversidade de ambientes existentes na computação moderna. Vejamos
esta linha do tempo:
Anos 1960 e 1970: Predominavam os mainframes e o processamento centralizado, ou seja, as linguagens
concentravam-se no oferecimento dos recursos de processamento do mainframe;
Anos 1980: Proliferaram as redes de computadores. Ainda assim, a arquitetura era a mesma dos mainframes, e
as linguagens geravam programas que rodavam na máquina central (servidor);
Anos 1990: Com o advento da internet, as linguagens se segmentam entre aquelas que rodam no lado do cliente,
operando juntamente com os navegadores, e as que se manteriam no lado do servidor;
Anos 2000: Vieram as nuvens e o processamento em data centers, cuja localização é �sicamente distante do
ambiente corporativo. Mais uma abstração implementada pelas LPs.
Legibilidade
Um dos critérios mais relevantes para julgar uma LP. Entende a capacidade com que os programas podem ser lidos e
entendidos. As características que in�uenciam a legibilidade são:
Simplicidade global: Quanto mais simples for uma linguagem, maior será a legibilidade de seu código. Uma linguagem
com número elevado de componentes básicos tende a ser subutilizada; assim, a multiplicidade de recursos pode
afetar negativamente a legibilidade. Por exemplo, um usuário, em C, pode incrementar uma variável de quatro formas
distintas, o que complica a legibilidade:
Cont = Cont + 1;
Cont +=1;
Cont ++;
++cont.
Ortogonalidade: Um conjunto relativamente pequeno de construções primitivas pode ser combinado em um número
pequeno de maneiras para construir as estruturas de controle e de dados de uma LP.
A ausência de ortogonalidade gerará uma exceção à regra da LP. A regra é: quanto mais ortogonal for o projeto de
uma linguagem, menos exceções às suas regras haverá. Muita ortogonalidade pode causar problemas.
Instruções de controle: Instruções como Goto (desvio incondicional) limitam bastante a legibilidade dos programas,
mas as linguagens modernas não implementam o desvio incondicional; logo, hoje em dia, o projeto de estruturas de
controle é menos importante na legibilidade do que anos atrás.
Tipos de dados e estruturas: A facilidade para de�nir tipos de dados e estruturas de dados é outro fator que aumenta
a legibilidade.
Uma linguagem permite a de�nição de registros de dados e vetores, mas não deixa que um vetor seja de registros.
Terá, assim, baixa legibilidade.
Sintaxe: Tem efeito sobre a legibilidade.
Na linguagem C, o signi�cado da palavra static depende do contexto em que ela surgir, o que tornará o código menos
legível.
Capacidade de escrita (redigibilidade)
Representa quão facilmente uma linguagem pode ser usada a �m de criar programas para o domínio de problema
escolhido. A maioria dos critérios que afeta a legibilidade também o faz em relação à capacidade de escrita.
As características que in�uenciam na capacidade de escrita são:
Simplicidade e ortogonalidade: Quanto mais simples e ortogonal for a LP, melhor será sua capacidade de escrita. O
ideal é que haja poucas construções primitivas e muita ortogonalidade (conjunto de instruções consistentes
combinando as construções primitivas).
Ortogonalidade em excesso pode gerar uma baixa capacidade de escrita.
Suporte para abstração: O grau de abstração de uma LP e a naturalidade de sua expressão são fundamentais para a
capacidade de escrita de bons programas. A abstração pode ser de:
Processos, como o conceito de subprograma;
Dados, como uma árvore;
Lista simplesmente encadeada.
Expressividade: LP com boa expressividade aumenta a capacidade de escrita. A expressividade de uma linguagem é
uma medida da naturalidade com que uma estratégia de resolução de problemas pode ser transformada em uma
estrutura de programas.
O Assembly possui baixa expressividade, mas ela é boa tanto no Pascal quanto no Delphi por conta das ricas
estruturas de controle e do comando For mais adequado de While e Repeat para representar lações com número �xo
de vezes.
Con�abilidade
Dizemos que um programa é con�ável se ele se comportar conforme sua especi�cação sob todas as condições.
Veremos a seguir alguns recursos das linguagens que exercem efeito sobre a con�abilidade de programas:
Veri�cação de tipos: Signi�ca testar, em tempo de compilação ou execução, se existem erros de tipo, como, por
exemplo, atribuir um valor booleano a uma variável do tipo inteira, o que vai resultar em erro. As linguagens fortemente
tipadas tender a ser mais con�áveis, pois apenasvalores restritos aos tipos de dados declarados poderão ser
atribuídos.
Em linguagens como C, não se veri�ca o tipo de dado do argumento com parâmetro. Em passagens de parâmetros,
erros podem ser complicados de se solucionar, afetando a con�abilidade. A veri�cação de tipos em tempo de
compilação é desejável, mas, em tempo de execução, é dispendiosa (mais lenta e requer mais memória) e mais �exível
(menos tipada).
Manipulação de exceção: Ao manipular exceções, o programa está garantido a sua execução corretiva e auxiliando a
con�abilidade. C++ e Java, por exemplo, incluem uma grande capacidade de manipular exceções. Além disso, há a
capacidade de a LP interceptar erros (juntamente com o sistema operacional) durante a execução do programa. A
linguagem deve permitir:
Detecção de eventos indesejáveis, como estouro de memória, busca de elemento inexistente e over�ow;
Especi�cação de respostas adequadas a tais eventos.
Dessa forma, o comportamento do sistema torna-se previsível. Java e C++, por exemplo, têm boa capacidade de
manipular exceções.
Aliasing: O fato de haver dois ou mais nomes referenciando a mesma célula de memória é um recurso perigoso e
afeta a con�abilidade. É muito difícil que a LP não use esse recurso. Restringir aliasing é prover con�abilidade aos
programas gerados com essas LPs.
Legibilidade e capacidade de escrita: Ambos in�uenciam a con�abilidade. A legibilidade afeta tanto na fase de
codi�cação como na de manutenção. Programas de difícil leitura também são difíceis de serem escritos.
Legibilidade + domínio da escrita → aumento da con�abilidade
Custo
O custo de uma LP é em função de muitas de suas características. Vejamos alguns deles:
Custo de treinamento para programadores usarem a LP em função da expertise do programador, simplicidade e
ortogonalidade dela: F (simplicidade de escrita, ortogonalidade e experiência).
Custo para escrever programas na linguagem em função da capacidade de escrita: F (capacidade de escrita) e F
(ambiente de programação).
Custo do compilador da LP em função da qualidade do programador: F (qualidade do compilador).
Custo para executar programas, o que é in�uenciado pelo projeto da LP: F (projeto da linguagem).
Custo de implementação da LP: A popularidade da LP vai depender de um econômico sistema de implementação.
Custo da má con�abilidade: Se o software falhar numa missão crítica, o custo será elevado.
Custo de manutenção: Depende de vários fatores, mas principalmente da legibilidade.
Há um conjunto de outros critérios para se avaliar linguagens, como a portabilidade ou a capacidade de os programas
serem executados em ambientes diferentes (sistema operacional e hardware), o que é altamente desejável. A
reusabilidade (quantas vezes um código pode ser reusado em outros programas ou sistema) afeta a produtividade da
LP, aumentando-a. Já a facilidade de aprendizado é outro critério de avaliação fortemente afetado por legibilidade e
capacidade de escrita.
Arquitetura do computador
A maioria das linguagens dos últimos 40 anos foi projetada em função da arquitetura de computador que prevaleceu: a
arquitetura de von Neumann. As linguagens são ditas imperativas. Já a arquitetura, em resumo, assim se manifesta:
Os dois custos acima podem ser minimizados se a LP for oferecida em um
bom ambiente de programação.
Os programas (conjunto de instruções) e os dados que serão processados residem em espaços de memória
RAM (random acess memory, em inglês);
A unidade central de processamento (UCP ou CPU) a executar cada instrução �ca �sicamente separada da
memória;
As instruções e os dados são transferidos da memória para a CPU, enquanto os resultados do processamento
devem ser transferidos da CPU para a memória.
Um ciclo de instrução na arquitetura Von Neumann funciona assim:
Busca a instrução, cujo endereço está no CI (contador de instrução), para armazená-la no RI (registrador de
instrução);
Incrementa o CI para receber o endereço da próxima instrução a ser executada;
Decodi�ca a instrução;
Busca os dados na memória e os transfere para os registradores;
Executa a instrução.
As linguagens imperativas tentaram ser produtivas implementando o funcionamento da arquitetura da máquina de
Von Neumman.
Exemplo
O uso de variáveis para a abstração dos endereços de memória, as repetições e�cientes, pois essa arquitetura lida
com endereços consecutivos de memória, e as instruções de atribuição: alocação de valores a variáveis.
Arquiteturas em paralelo
A computação em paralelo faz uso de máquinas multiprocessadas com dois ou mais processadores. Isso estimula o
uso da computação em paralelo, requerendo linguagens especiais que façam uso e tenham um melhor
aproveitamento de cada processador conforme os tipos de instruções dos programas que executarem em paralelo.
Essas máquinas fomentam, portanto, o uso do paradigma da programação concorrente ou em paralelo.
Técnicas e metodologias de programação
À medida que as LPs evoluem, as técnicas de programação mudam, eventualmente também evoluindo. Vejamos a
linha do tempo a seguir que demarca esse processo:
Década de 1970
Programação estruturada:
Projeto top-down;
Linguagem imperativa e estruturada (estruturas de controle);
Motivo: Problemas maiores e mais complexos passam a ser resolvidos por computador, como, por exemplo, o
controle de grandes instalações de re�narias de petróleo e sistemas de vendas de passagens aéreas pelo mundo.
Década de 1980
a) Mudança na metodologia de desenvolvimento:
De orientação a processos a orientação a dados;
Ênfase no projeto de dados;
Surgimento dos TADs (tipos abstratos de dados).
b) Projeto orientado a objeto:
Evolução no desenvolvimento de software orientado a dados;
Início: Abstração de dados, que encapsula o processamento com objetos de dados e oculta o acesso a eles.
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
As propriedades desejáveis em uma LP
Alguns autores sempre se preocuparam em agrupar e classi�car as LPs para poderem entender melhor as propriedades de
cada uma e compará-las entre si. Segundo Sebesta (2000), há quatro grandes critérios para análise e seleção dessas
linguagens. Para cada critério, há in�uências de algumas características da linguagem:
Clique nos botões para ver as informações.
Um dos critérios mais relevantes é a “facilidade com que os programas podem ser lidos e entendidos” pelas pessoas que
não tenham necessariamente participado do desenvolvimento.
Legibilidade 
Quão facilmente uma linguagem pode ser usada a �m de desenvolver programas para o domínio de problema escolhido.
Capacidade de escrita 
Um programa é dito con�ável se ele se comporta conforme a sua especi�cação.
Con�abilidade 
O custo �nal de uma LP é a função de muitas de suas propriedades e características.
Custo 
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Veremos agora como determinadas propriedades da LP in�uenciam os quatro critérios acima expostos, o que pode ser
evidenciado na �gura adiante.
Critérios
Característica Legibilidade Capacidade escrita Confiabilidade
Simplicidade/ortogonalidade   
Estruturas de controle   
Tipos de dados e estruturas   
Projeto de sintaxe   
Suporte para abstração  
Expressividade  
Verificação de tipos 
Manipulação de exceções 
Aliasing 
A história das LPs 
Faremos uma descrição breve  das principais LPs surgidas a partir da década de 1950. Elas in�uenciaram uma geração de
linguagens de programação.
Década de 1950
Surgiram as primeiras linguagens para
facilitar o trabalho dos programadores que
tivessem a e�ciência computacional como
foco, otimizando o uso de memória e
processador. Fortran e Cobol representam
esse conjunto de LPs.
Década de 1960
As LPs concentraram sua e�ciência na
produtividade dos programadores graças à
programação estruturada. Destacaram-se
nesta década as linguagens Pascal e C.
Década de 1970
O foco era a abstração de dados à medida
que os sistemas de computação se tornavam
mais complexos. Principais representantes:Modula-2 e Ada.
Décadas de 1980 e 1990
Predomínio da microcomputação, com a
proliferação dos PCs em função de seu
barateamento. O reuso passa a ser a métrica
pretendida. Surge o paradigma orientado a
objeto. A partir dele, aparecem as seguintes
linguagens: Smalltalk, Eiffel, C++ e Java.
Saiba mais




Paralelamente às linguagens imperativas, surgem também as declarativas:
Década de 1950: Lisp;
Década de 1970: Prolog.
Atividade
Avalie as assertivas sobre as LPs:
I. As LPs apenas in�uenciam e sofrem in�uência na fase de programação.
II. Uma linguagem deve ser compatível única e exclusivamente com o hardware a que se propôs atender.
III. A abstração traz facilidades incríveis ao programador, que cada vez precisa conhecer menos do ambiente onde a linguagem
opera (composto por sistema operacional e hardware).
IV. Um comando em uma linguagem de alto nível faz mais que uma operação primária do hardware.
Com base em sua análise, marque a opção que apresenta apenas as assertivas corretas.
a) I, II, III e IV
b) III e IV
c) III
d) II e IV
e) IV
2 - Diga se a assertiva é verdadeira ou falsa. Justi�que a sua resposta. Assertiva: Uma LP com boa legibilidade e capacidade de
escrita tende a ter maior longevidade, facilitando não apenas codi�cação, mas também a manutenção.
3 - Veja a re�exão a seguir: “Quem nasceu primeiro, as LPs ou as técnicas de análise e projeto de sistemas?”.
Referências
SEBESTA, R. W. Conceitos de linguagem de programação. 9. ed. Porto Alegre: Bookman, 2011.
VAREJÃO, F. M. Linguagem de programação: conceitos e técnicas. Rio de Janeiro: Elsevier, 2004
Próxima aula
Formas de implementação de uma LP: compilação, tradução e híbrido;
Formas de classi�cação de LPs.
Explore mais
Cinco LPs que você deve considerar aprender em 2019;
Top 10: LPs mais usadas no mercado;
Dez sites para você aprender a programar;
Sete LPs para você aprender em 2019;
Seis tendências do mercado de programação para �car de olho em 2019;
História da computação: as primeiras LPs.
javascript:void(0);
javascript:void(0);
javascript:void(0);
javascript:void(0);
javascript:void(0);
javascript:void(0);

Continue navegando