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