Introdução Agenda

Propaganda
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
1
Fonte (livro-texto):
Conceitos de Linguagens de Programação, 4ed.
Robert W. Sebesta
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Agenda
1.
2.
3.
4.
Razões para estudar conceitos de LPs
Domínios de programação
Critérios de avaliação de linguagens
Projeto de linguagens
1.
2.
Fatores
Compromissos
5. Métodos de implementação
6. Ambientes de programação
7. Categorias de linguagens
1
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Razões para estudar conceitos de LPs
•
•
•
•
Melhorar a expressão de idéias
Facilitar a escolha de linguagens
Facilitar o aprendizado de novas linguagens
Melhorar a compreensão sobre detalhes de
implementação
• Facilitar o projeto de novas linguagens
• Promover avanço geral na área
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Domínios de Programação
Algumas áreas de aplicação e linguagens associadas
1. Aplicações científicas
–
Fortran, Algol 60, …
2. Aplicações comerciais
–
Cobol, …
3. Aplicações de Inteligência Artificial
–
LISP, Prolog
4. Desenvolvimento de Software básico
–
PL/S, Bliss, C, …
5. Aplicações para Web
–
sh, Perl, Java, …
2
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Domínios de Programação
•
•
•
•
•
Aplicações científicas
Aplicações comerciais
Inteligência artificial
Software básico
Aplicações Web
desenvolvedores
usuários
aplicações
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Critérios de Avaliação
• Legibilidade
Fatores:
– Simplicidade
– Ortogonalidade
– Estr. de controle
– Estruturas e tipos de
dados
– Aspectos sintáticos
• Redigibilidade
Fatores:
– Simplicidade
– Ortogonalidade
– Suporte a abstração
– Poder de expressão
3
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Critérios de Avaliação
• Confiabilidade
Fatores:
– Verificação de Tipos
– Trat. de exceções
– Aliasing
– Legibilidade e
Redigibilidade
• Custo
Categorias:
– Treinamento
– Programação
– Compilação
– Execução
– Teste
– Manutenção
– Evolução
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Critérios de Avaliação
• Outros critérios?
– portabilidade, usabilidade,…
• Diferentes perspectivas?
– Usuários
• Gerentes
• Programadores
– Projetistas
– Implementadores
4
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Critérios de Avaliação de LPs
• Legibilidade
• Expressividade
• Simplicidade
• Confiabilidade
• Custo
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Projeto de Linguagens
Fatores
• Atributos de qualidade
– legibilidade, redigibilidade, confiabilidade, custo
• Arquitetura
– von Neumann
– paralelas
–…
• Metodologia de programação
– custos : hardware X software
– orientado a função, orientado a objetos, … ?
5
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Projeto de Linguagens
Trade-offs
• Confiabilidade versus Custo de execução
– Ada and C
• Legibilidade versus Redigibilidade
– APL
• Flexibilidade versus Confiabilidade
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Métodos de Implementação
• hardware
– memória
– processador
• linguagem de máquina
• sistema operacional
6
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
A arquitetura de von Neumann
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Visão em camadas de um computador
7
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Métodos de Implementação
• Compilador
– programa que traduz código fonte escrito em uma
linguagem de programação de alto nível para código objeto
• Interpretador
– programa que executa código fonte escrito em uma
linguagem de programação de alto nível
• Abordagens híbridas
– solução de compromisso entre compiladores e
interpretadores
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
• Compilação
– tradução lenta
– execução veloz
8
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
• Interpretação (pura)
– não há tradução
completa
– execução lenta
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
• Sistemas Híbridos
– baixo custo de tradução
– velocidade de execução
média
9
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Ambientes de desenvolvimento
• Coleção de ferramentas utilizadas no
desenvolvimento de software
– Unix
– Smalltalk
– IDEs
•
•
•
•
JBuilder
VisualAge
Forte
Eclipse
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Categorias de Linguagens
• Paradigmas
– Imperativo
– Declarativo
• Funcional
• Baseado em Lógica
– Orientação a Objetos
– Concorrente
• Outros paradigmas?
• Multi-paradigma?
10
Conceitos de Linguagens de Programação, 4e Robert W. Sebesta © 2000 Bookman
Discussão
•
•
•
•
Discuta os critérios de avaliação apresentados
Pense em critérios de avaliação adicionais
Confronte critérios versus perspectivas
Enumere argumentos a favor e contra a idéia
de uma única linguagem de programação para
todos os domínios
11
Download