Buscar

AVALIACAO_DA_LINGUAGEM

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 23 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 23 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 23 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

Aspectos preliminares das 
linguagens de programação
Fundamentos de Informática – Wilnice Tavares
Complementação
Linguagem de programação
• Motivos para estudar os conceitos de linguagem 
de programação
– Aumento da capacidade de expressar as idéias
– Maior embasamento para a escolha da linguagem 
apropriada para determinada solução
– Capacidade aumentada para aprender novas 
linguagens
– Entender a importância da implementação
– Aumento da capacidade de projetar linguagens
– Avanço global da computação
Linguagem de programação
• Computadores usados em uma infinidade de áreas
– Aplicação científicas
• Assembly
• Fortran
• Algol
– Aplicações comerciais
• Cobol
• Planilhas eletrônicas e os sistemas de Banco de Dados (negócios de pequeno porte)
– Inteligência Artificial
• Computação simbólica em vez de numérica - Primeira linguagem – LISP
• Programação lógica (lógica de proposições) - Primeira linguagem – PROLOG
– Programação de sistemas
• Todos os S.O. são conhecidos como software básico – projetar um S.O. – linguagem 
deve ter recursos de baixo nível / execução rápida / permitir fazer interface com os 
dispositivos de E-S
• IBM – desenvolveu a PL/S e PL/I
• UNIX – foi desenvolvido em C (ANSI, 1986) – linguagem C perigosa para ser usada 
em sistemas grandes e importantes
Linguagem de programação
• Computadores usados em uma infinidade de áreas
• Linguagem de scripiting
– Surgiu nos últimos 25 anos
– Lista de comandos em um arquivo para serem executados
- A primeira delas SH (shell)
- KSH
- AWK
- TC1
- PERL 
- Java Scripit
• Linguagem de propósito especiais
– RPG ( report program generator) 
– GPSS (general purpose simulation system)
Mais convencionais
Critérios de avaliação das linguagens
• Objetivo
– Avaliar cuidadosamente os conceitos 
fundamentais das várias construções e das 
capacidades das linguagens de programação
– Critérios mais discutidos entre os cientistas da 
computação (importantes)
• Legibilidade
• Capacidade de escrita 
• confiabilidade
Critérios de avaliação das linguagens
• LEGIBILIDADE
– Simplicidade/ortogonalidade
– Estruturas de controle
– Tipos de dados e estruturas
– Projeto da sintaxe
• CAPACIDADE DE ESCRITA
– Nas 4 anteriores
– Suporte para abstração
– Expressividade
Critérios de avaliação das linguagens
• CONFIABILIDADE
– Nas 6 anteriores
– Verificação de tipos
– Manipulação de exceções
– Apelido (alising)
Critérios de avaliação das linguagens
• Legibilidade 
– Critério mais importante (1970 – ciclo de vida 
software)
– Facilidade de um programa ser lido e entendido
– Facilidade de manutenção / custo
• Simplicidade/ortogonalidade
– Capacidade da linguagem ter menos componentes 
básicos (usar subconjunto dela), menos multiplicidade 
de recursos (linguagem C), e não permitir sobrecarga 
de operadores (overloading) – definir o + para *
Critérios de avaliação das linguagens -
Legibilidade 
• Ortogonalidade
– Relacionado diretamente com a simplicidade –
capacidade de combinar um conjunto 
relativamente pequeno de primitivas, para criar 
um conjunto relativamente pequeno de estruturas 
de controle
– Exige-se um certo controle, pois a liberdade de 
combinações permite construções extremamente 
complexas
Critérios de avaliação das linguagens -
Legibilidade
• Estrutura de controle
– Mais fácil de ser lido
– Revolução da programação estruturada em 70
– Reação a má legibilidade causada pelo uso exagerados 
do goto de algumas linguagens
– Usar apenas se:
• Seus alvos nunca devem estar muito distante
• Seu número deve ser limitado
– Às versões antigas do Basic e Fortran faltavam as 
instruções de controle, que permitissem escrever 
programas altamente legíveis.
Critérios de avaliação das linguagens -
Legibilidade
• Tipos de dados e estruturas
– Capacidade de definir tipos de dados e estruturas de dados em 
uma linguagem 
– Usar um tipo numérico para sinalizar um tipo booleano
• Soma_e_muito_grande=1 (criar um tipo)
• Soma_e_muito_grande=true (booleano)
– Símbolos dos operadores variam entre linguagens
FORTRAN 77 FORTRAN 90 C Ada
.AND. and && and
.OR. or || or
.NOT. not ! not
xor
– Um tipo de dados registro (record) é mais legível do que um 
conjunto de vetores similares, para cada item de dados de 
um registro de funcionários
Critérios de avaliação das linguagens -
Legibilidade
• Sintaxe
– A sintaxe de uma linguagem tem influência sobre a sua 
legibilidade, existem 3 projetos sintáticos que afetam a 
legibilidade de uma linguagem
• Formas identificadoras 
– restringir os identificadores a tamanhos muito pequenos – (exemplo –
Basic onde identificador com 1 letra ou 1 letra seguida de 1 dígito)
• Palavras reservadas 
– permitir usá-las como nome de variáveis 
– usar como pares para formar grupos em construção de controle (begin-
end / { } / ) torna confuso
• forma e significado
– Projetar instruções afim de que sua aparência indique sua finalidade
Critérios de avaliação das linguagens
• Capacidade de Escrita (writability)
– Escrever um programa exige uma releitura frequente
da parte que já foi escrita pelo programador
– Deve ser considerada no contexto do domínio do 
problema-alvo de uma linguagem de programação
• Capacidade de escrita do COBOL não serve/não é a 
melhor/nem a mais eficiente para lidar com estruturas de 
dados bidimensionais
• Porém foi projetado para lidar com problemaa de contexto 
financeiro onde consegue gerar relatórios com formatos 
complexos e eficientes
Critérios de avaliação das linguagens -
Escrita
• Suporte para abstração de dados
– Domínio de solução de problemas de linguagem 
deve estar mais próximo do domínio do problema
– Implementar uma árvore binária em C++ e Java é 
muito mais eficiente e menos confuso do que 
fazer a mesma implementação em Fortran
Critérios de avaliação das linguagens -
Escrita
• Expressividade
– Em uma linguagem se refere a diversas 
características
• Em APL o fato da linguagem possuir operadores 
poderosos permite que uma grande quantidade de 
computação seja realizada em um programa muito 
pequeno
• Em C a notação cont++ conveniente e mais breve do que 
se fosse cont = cont + 1
• Escrever laços em Java usando o FOR torna mais fácil a 
escrita de laços de contagem do que com o WHILE
Critérios de avaliação das linguagens 
• Confiabilidade
– Um programa é confiável se ele se comportar de 
acordo com suas especificações sob as condições:
• Verificação de tipo
– Capacidade da linguagem testar se existem erros de tipo em 
determinado programa, ou pelo compilador ou durante a 
execução do programa
– Verificação durante a execução é mais dispendiosa
– Verificação durante a compilação é mais desejável
Critérios de avaliação das linguagens 
Confiabilidade
• Manipulação de exceções
– capacidade da linguagem lidar com situações não-errôneas, mas 
pouco comum
• Exemplo – criar um programa cuja rotina inclua expressões com 10 operações 
de divisão onde pode ter um divisor zero, linguagem preparada para aceitar 
essa operação
• Apelidos (aliasing)
– Definido livremente é a capacidade de se ter 2 ou mais métodos ou 
nomes distintos para fazer referência à mesma célula de memória
– Utilizado com o propósito de reutilizar o espaço de armazenamento 
– Linguagem que permite a criação de alias é um problema para a 
legibilidade 
– Muitos alias torna o programa pouco confiável
Influência sobre o projeto de 
linguagem
• Arquitetura do computador
– Exerce um papel crucial sobre o projeto das linguagens 
– As mais populares dos últimos 45 anos – projetada em 
função da arquitetura Von Neumann
– São denominadas de linguagens Imperativas – imita a 
arquitetura do hardware
CPUINPUT OUTPUT
MEMÓRIA
Instruções e dadosResultado das 
operações
Influência sobre o projeto de 
linguagem
• Arquitetura Von Neumann
– Dados e programas armazenados na mesma 
memória
– CPU que executa realmenteas instruções –
separada da memória
– Instruções e dados canalizados da memória para a 
CPU
– Os resultados das operações na CPU transferidos 
para a memória
Influência sobre o projeto de 
linguagem
• Arquitetura Von Neumann
– Linguagem Imperativas
• Recursos centrais das linguagens são as variáveis
– Modelam as células de memória, as instruções de atribuição 
baseadas em operações que canalizam para a CPU
• Os operandos das expressões são canalizados da 
memória para a CPU
• O resultado da avaliação é canalizado de volta para a 
célula de memória representada pelo lado esquerdo da 
atribuição
Categorias de linguagem
• Categorizadas em 4 níveis
– Imperativas (ordem das instruções e comandos 
deve ser explícita)
– Funcionais (baseadas em funções)
– Lógicas (baseadas em regras)
– Orientada a objeto (baseada em classe)
– Linguagem de marcação – HTML (não especificam 
computações e sim descrevem a aparência geral 
de documentos)
Ambiente de programação
• Um ambiente de programação é um conjunto 
de ferramentas usadas no desenvolvimento de 
softwares
• Esse conjunto pode ser – um sistema de 
arquivos / editor de texto / linkeditor/ 
compilador / coleção de ferramentas 
integradas
• Unix / C++ / Smaltalk
Resumo
• Estudar linguagem aumenta a capacidade de usar diferentes 
programas de maneira mais inteligente e mais simples;
• O projeto e avaliação de uma linguagem dependem do domínio em 
que serão usadas;
• Os critérios mais importante para avaliar uma linguagem são a 
legibilidade, a escrita e a confiabilidade e o custo global (o software, 
treinamento, desenvolvimento);
• A principal influência sobre o projeto de uma linguagem tem sido a 
arquitetura de máquina;
• Principais métodos para implementar linguagens são a compilação, 
a interpretação pura e a implementação híbrida;
• Os ambientes de programação tornaram-se partes importantes dos 
sistemas de desenvolvimento de software, onde a linguagem é um 
dos componentes;

Outros materiais