Академический Документы
Профессиональный Документы
Культура Документы
Plano de Ensino
Reviso
Aula Passada:
Definio de Paradigmas Definio de Linguagem Definio de Linguagem de Programao Componentes de uma Linguagem de Programao Caractersticas de Linguagem de Programao Motivos para Estudar Linguagens de Programao Domnios de Programao
Plano de Ensino
Reviso
Aula Passada:
Critrios de Avaliao
Legibilidade
Hoje
Plano de Ensino
Capacidade de Escrita
Medida da facilidade de usar a linguagem para criar programas no domnio do problema Forma de expressar um problema de forma natural, sem desviar a ateno do programador para truques da linguagem. Caractersticas de Legibilidade afetam tambm a capacidade de escrita Caractersticas que contribuem para a capacidade de escrita
Simplicidade e Ortogonalidade Suporte para a abstrao Expressividade (poder de expresso)
Plano de Ensino
Simplicidade e Ortogonalidade
Um grande nmero de construes:
Leva ao desconhecimento de algumas delas Uso inadequado de alguns recursos Desuso de recursos mais elegantes ou eficientes Uso acidental de recursos desconhecidos, com resultados imprevisveis
Plano de Ensino
Em Fortran, a implementao de uma rvore binria de inteiros necessita de 3 vetores, dois para ndices e outro para o contedo C++, basta definir o dado e os ponteiros para os ns-filhos em uma classe. Um nico objeto desta classe define o n raiz.
Em
Plano de Ensino
Expressividade
Existncia de operadores poderosos permitindo que muita coisa seja feita com pouco cdigo
Exemplos em C
Operador ++ For ao invs de while
Plano de Ensino
Confiabilidade
Indica se um programa se comporta de acordo com as especificaes sob todas condies Significa escrever programas garantindo que se atinja o efeito desejado. Caractersticas que contribuem para a confiabilidade:
Verificao de tipos Manipulao de excees Aliasing Legibilidade e Capacidade de Escrita
Plano de Ensino
Verificao de tipos
Verifica se existe erros de tipo. Pode ser feita em:
Tempo de compilao Tempo de execuo
Plano de Ensino
Manipulao de excees
a capacidade de um programa:
Interceptar erros em tempo de execuo Por em prtica medidas corretivas Prosseguir na execuo
Exemplos:
Ada, C++, Java permitem manipular excees C e Fortran no dispem de manipulao de excees
Plano de Ensino
Aliasing (apelidos)
ter dois ou mais mtodos ou nomes para fazer referncia mesma posio de memria.
Exemplo: Duas variveis de ponteiro apontando para a mesma posio de memria.
A existncia de aliasing prejudicial confiabilidade. A maioria das linguagens permitem algum tipo de aliasing.
Plano de Ensino
Plano de Ensino
Custo
O custo total de se usar determinada linguagem afetado pelos custos de:
Treinar os programadores
Funo da simplicidade e da ortogonalidade Linguagens mais poderosas Quanto
maior a complexidade e quanto mais recursos contm a linguagem maior o grau de dificuldade de aprendizado
ligado aos fatores de simplicidade: quanto menor o nmero de componentes bsicos, mais fcil a leitura e a programao do cdigo fonte
Plano de Ensino
Custo
Compilar os programas
Precisa
Executar os programas
Otimizao
a palavra chave. Trata-se de preocupao em desenvolver um cdigo otimizado, com execuo mais rpida. A gerao de cdigos compilados ineficientes podem tornar o custo de execuo elevado
as licenas forem caras ou necessitarem de hardware caro, pode afetar popularidade da linguagem
Plano de Ensino
Custo
M confiabilidade
Testes realizados na linguagem visam confiana. Se Se
o sistema falhar em sistemas crticos, pode resultar em custo elevado falhar em sistemas no crticos, pode elevar custos em termos de aes judiciais
principalmente pela legibilidade (quanto mais fcil escrever o programa, mais fcil torna-se a manuteno )
manuteno feita frequentemente por pessoas que no desenvolveram o programa O custo de manuteno costuma estar entre duas a quatro vezes o custo de desenvolvimento
Plano de Ensino
Custo
Os fatores mais considerveis em termos de custos de linguagem so o desenvolvimento do programa, manuteno e confiabilidade, sendo as duas ltimas mais onerosas.
Plano de Ensino
Generalidade
Seu uso em uma gama de aplicaes
Boa definio
A preciso e a completeza da definio oficial da linguagem
Plano de Ensino
Metodologias de programao
Novas metodologias de desenvolvimento de software Novos paradigmas de programao Novas linguagens de programao
Plano de Ensino
MEMRIA
resultados (piped) instrues e dados (piped)
ULA CPU
UC
E/S
Plano de Ensino
Plano de Ensino
Plano de Ensino
Plano de Ensino
Plano de Ensino
Anos 90
Concorrncia Internet
Plano de Ensino
Plano de Ensino
Lgica
Baseado em regras (regras so especificadas sem ordem pr- determinada) Exemplo: Prolog
Marcao
No especificam computao, so usadas para definir o layout de informao em documentos Web Exemplos: XHTML, XML
Plano de Ensino Regina Clia Coelho
Mtodos de Implementao
Definem como programas na linguagem podem ser executados no cdigo compreendido pelo processador O processador s reconhece cdigo de mquina Compilao
Programas so traduzidos para linguagem de mquina
Plano de Ensino
Mtodos de Implementao
Interpretao pura
Programas so lido e interpretados por outro programa
Plano de Ensino
Compilao
Traduz programas em alto-nvel (linguagem fonte) em cdigo de mquina (linguagem de mquina) Traduo lenta, execuo rpida O processo de compilao possui vrias fases:
Anlise lxica
Rene
os caracteres do programa-fonte em unidades lxicas (identificadores, palavras especiais, operadores, smbolos de pontuao)
Plano de Ensino
Compilao
Anlise sinttica
Transforma
unidades lxicas em rvores de anlises (parse trees), as quais representam a estrutura sinttica do programa
Anlise semntica
Gera
Gerao de cdigo
Cdigo de mquina gerado
Plano de Ensino
O Processo de Compilao
Programa fonte Analisador Lxico
Unidades lxicas
Programa executvel
Linguagem de mquina
Tabela de Smbolos
Gerador de Cdigo
Analisador Sinttico
rvores de anlises
Analisador Semntico
Cdigo intermedirio
Otimizador de cdigo
Plano de Ensino
Interpretao Pura
Nenhuma traduo feita Cada comando lido e executado pelo interpretador Facilita a implementao de programas (erros de execuo so rapidamente mostrados) Execuo lenta
10 a 100 vezes mais lenta do que programas compilados
Plano de Ensino
Interpretao Pura
Geralmente requer mais espao
A tabela de smbolos deve estar presente
Plano de Ensino
Plano de Ensino
forma intermediria, bytecode, provia portabilidade para qualquer mquina que tivesse a Mquina Virtual Java
Plano de Ensino
Plano de Ensino
Resumo
O estudo de linguagens de programao vlido por uma srie de motivos:
Aumenta nossa capacidade de usar diferentes construes para escrever programas Habilita-nos a escolher linguagens de forma mais inteligente Ajuda-nos a aprender novas linguagens mais facilmente
As principais influncias no projeto de uma linguagem tm sido a arquitetura da mquina e as metodologias de projeto de software Os principais mtodos para implementar linguagens so:
compilao, interpretao pura e implementao hbrida
Plano de Ensino Regina Clia Coelho
Exerccio
Escreva uma avaliao de pelo menos 3 linguagens de programao usando os critrios descritos (legibilidade, capacidade de escrita e confiabilidade). Faa um resumo ao final caractersticas de cada uma. comparando as
Plano de Ensino
Slides
Prof. Erwin Doescher (UNIFESP)
Plano de Ensino
Referncia
Captulo 1:
Sebesta, R. W. Conceitos de Linguagens de Programao, 5. Edio, Editora Bookman, 2003.
Plano de Ensino