Вы находитесь на странице: 1из 13

Linguagens de Programao

Captulo I Introduo

Baseado em Conceitos de Linguagens de Programao 4 Edio Robert W. Sebesta Bookman

Engenharia Informtica Linguagens de Programao 2002/2003

Razes para Estudar os Conceitos de Linguagem de Programao


1. Melhorar a capacidade de expressar conceitos de programao 2. Aumentar o conhecimento por forma a permitir escolher a linguagem + apropriada 3. Incrementar a capacidade para aprender novas linguagens 4. Entender melhor o significado da implementao
Engenharia Informtica Linguagens de Programao 2002/2003

Razes para Estudar os Conceitos de Linguagem de Programao


5. Aumentar a capacidade de projeco de novas linguagens 6. Obter uma viso mais geral de computao

Engenharia Informtica Linguagens de Programao 2002/2003

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

Critrios para avaliao de linguagens de programao


1. Legibilidade Simples, com poucas caractersticas Multiplicidade de caractersticas no bom Ortogonalidade Torna a linguagem fcil de aprender e ler Significado independente do contexto Comandos de Controle Estruturas e Tipos de Dados Consideraes Sintcticas
Engenharia Informtica Linguagens de Programao 2002/2003

Critrio de Avaliao (cont.)


2. Escritabilidade
Simplicidade e ortogonalidade Suporte para abstraes Poder de expresso (ex: cont++; em vez de cont = cont +1;)

3. Confiabilidade
Verificao de tipos Tratamento de Excepes Aliasing (outro nome) Legibilidade e escritablidade
Engenharia Informtica Linguagens de Programao 2002/2003

Critrio de Avaliao (cont.)


4. Custo
Aprendizagem por parte dos programadores Projeto de software Compilao Execuo Custo do compilador Leitura pobre Manuteno
Engenharia Informtica Linguagens de Programao 2002/2003

Critrio de Avaliao (cont.)


5. Outros
Portabilidade Generalizao Boa definio Existncia de boas ferramentas
Compiladores Debuggers

Engenharia Informtica Linguagens de Programao 2002/2003

Influncias na criao de LP Fatores Principais:


1. Arquitetura do Computador
Utilizamos linguagens imperativas, pelo menos em parte, porque usamos mquinas de von Neumann.

Engenharia Informtica Linguagens de Programao 2002/2003

Influncias na criao de LP Fatores Principais


2. Metodologia de Programao
1950s e incio de 1960s - aplicaes simples; preocupao com eficincia de mquina Final dos anos 60: Eficincia das pessoas torna-se importante; legibilidade, melhor estrutura de controle Final 1970s : Abstrao de dados Metade de 1980s: Programao Orientada a Objectos tornou-se popular com as LP Smalltalk, Java e C++.
Engenharia Informtica Linguagens de Programao 2002/2003

Categorias de Linguagens
1. 2. 3. 4. Imperativa Funcional Lgica Orientada a Objectos

Engenharia Informtica Linguagens de Programao 2002/2003

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.

Engenharia Informtica Linguagens de Programao 2002/2003

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.

Engenharia Informtica Linguagens de Programao 2002/2003

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.

Engenharia Informtica Linguagens de Programao 2002/2003

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).

Engenharia Informtica Linguagens de Programao 2002/2003

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++;);

3. Flexibilidade v.s. segurana


Em Linguagem C, o tipo void pode conter qualquer tipo de dados, o que pode ser perigoso. EX. C: void *apt; apt = 0x7000;
Engenharia Informtica Linguagens de Programao 2002/2003

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

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;

Engenharia Informtica Linguagens de Programao 2002/2003

10

Compilao

Engenharia Informtica Linguagens de Programao 2002/2003

Mtodos de Implementao
2. Interpretao Pura
Nenhuma traduo; Execuo lenta (10 a 100x); Tornando-se raro.

Engenharia Informtica Linguagens de Programao 2002/2003

11

Mtodos de Implementao
3. Implementao Hbrida
Traduo para linguagem intermdia (ex.: Java, Perl); Pequeno custo de traduo; Rapidez mdia de execuo;

Engenharia Informtica Linguagens de Programao 2002/2003

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;

4. Microsoft Visual C++


Complexo e poderosa; Grande conjunto de ferramentas disponveis.
Engenharia Informtica Linguagens de Programao 2002/2003

13

Вам также может понравиться