Академический Документы
Профессиональный Документы
Культура Документы
Captulo I Introduo
Domnios de Programao
As linguagens de programao podem ser divididas segundo a sua rea de actuao:
Aplicaes Cientificas (incio na dcada de 40) Aplicaes Comerciais (dcada de 50) Inteligncia Artificial (dcada de 60) Programao de Sistemas Operativos (d. 60) Linguagens de Scripting (d. 60) Linguagens Especiais (d. 60)
Engenharia Informtica Linguagens de Programao 2002/2003
3. Confiabilidade
Verificao de tipos Tratamento de Excepes Aliasing (outro nome) Legibilidade e escritablidade
Engenharia Informtica Linguagens de Programao 2002/2003
Categorias de Linguagens
1. 2. 3. 4. Imperativa Funcional Lgica Orientada a Objectos
Categorias de Linguagens
1. Imperativa
Linguagens projectadas em funo da arquitectura de Von Neumann; Algoritmo especificado em grandes detalhes; Comandos ou instrues devem estar em ordem de execuo; Exemplo de linguagens imperativas: C, Pascal, Fortran, algol, cobol, etc.
Engenharia Informtica Linguagens de Programao 2002/2003
Categorias de Linguagens
2. Funcionais
Baseado em funes matemticas; Aplicao de funes a determinados parmetros; O tipo de dados bsico so as listas. Exemplo de linguagens imperativas: Lisp, ML, Miranda, Haskell, Scheme, etc.
Categorias de Linguagens
3. Lgica
Baseada em regras e smbolos; Programas lgicos so declarativos, porque consistem em declaraes em vez de atribuies e instrues de fluxo de controle; Exemplo de linguagens imperativas: Prolog.
Categorias de Linguagens
4. Orientada a Objectos
Relao prxima com a imperativa; Implementao de Classes, Mtodos, Herana, Polimorfismo e Encapsulamento; Exemplo de linguagens imperativas: Java, C++, SmallTalk, Eiffel, etc.
Conflitos em Projeto de LP
Muitos dos critrios de avaliao de LP so conflituosos Trade-Offs, como por exemplo: 1. Confiabilidade v.s. custo de execuo
A verificao da validade do ndice de um array aumenta a confiabilidade atravs de mais instrues (custo de execuo).
Conflitos em Projeto de LP
2. Escritabilidade v.s. legibilidade
(cont)
Uma linguagem compacta mais simples de escrever, contudo a sua leitura pode ser intragvel. EX. C++: for(;argv;cout << *argv++;);
Mtodos de Implementao
Os dois principais componentes de um computador so:
Processador Memria para dados e instrues
Uma LP tem que ser traduzida para a linguagem mquina (macro-instrues) e pode utilizar um conjunto de recursos disponveis noutras camadas de software.
Engenharia Informtica Linguagens de Programao 2002/2003
Mtodos de Implementao
1. Compilao
Traduz programas de alto-nvel em cdigo de mquina; Traduo vagarosa; Execuo do programa muito rpida;
10
Compilao
Mtodos de Implementao
2. Interpretao Pura
Nenhuma traduo; Execuo lenta (10 a 100x); Tornando-se raro.
11
Mtodos de Implementao
3. Implementao Hbrida
Traduo para linguagem intermdia (ex.: Java, Perl); Pequeno custo de traduo; Rapidez mdia de execuo;
Ambiente de Programao
Conjunto de ferramentas utilizadas em desenvolvimento de software 1. UNIX
Um Sistema Operativo e uma coleo de ferramentas antigas.
2. Borland C++
Ambiente PC para C++; Possui interface grfica com editor, compilador, depurador, etc.
Engenharia Informtica Linguagens de Programao 2002/2003
12
Ambiente de Programao
3. Smalltalk
Um ambiente visual grande e complexo
Foi o primeiro a utilizar janelas e mouse para oferecer uma interface uniforme em todas as ferramentas;
13