O documento discute critérios para avaliar linguagens de programação, incluindo legibilidade, capacidade de escrita e confiabilidade. Legibilidade é afetada por simplicidade, estruturas de controle e tipos de dados. Capacidade de escrita considera simplicidade, ortogonalidade, abstração e expressividade. Confiabilidade depende de verificação de tipos e tratamento de exceções. Custos também são um fator importante.
1. Prof. José Augusto Meirelles (Guto)
Paradigmas de Linguagem de Programação - Aula 2 Critérios de Avaliação de Linguagens de Programação
Material desenvolvido pelo Prof. Fernando Bryan Frizzarin
2. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Paradigma
•define um exemplo típico ou modelo de algo
•representação de um padrão a ser seguido
•uma referência inicial como base de modelo para estudos e pesquisas
3. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Critérios de Avaliação de LP
•Alguma das principais áreas de aplicação de linguagens de programação:
–Aplicação Científicas
•Operações com números reais
•Ex.: Fortran
–Aplicação Comercial
•Números decimais, relatórios e Banco de Dados
•Ex.: COBOL, Clipper, Delphi
–Inteligência Artificial
•Simbolismo e conexionismo ao invés de Números
•Ex.: LISP, Prolog
–Programação de Sistemas/Software Básico
•Uso contínuo, “portabilidade”, rapidez
•Ex.: C, C++
–Linguagens de Scripting
•Automação do SO, Software para Web
•Ex.: PHP, Pearl
4. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Critérios de Avaliação de LP
•Critérios mais utilizados:
–Legibilidade (readability)
–Capacidade de escrita (writability)
–Confiabilidade
–Custos
5. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Critérios de Avaliação de LP
•Legibilidade:
–Facilidade com que um programa pode ser lido e entendido;
•Manutenção tem mais relevância que a codificação
–Deve ser considerada no contexto do domínio do problema;
•A linguagem foi projetada para isso?
6. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Legibilidade
•Principais fatores de avaliação
–Simplicidade
–Estruturas de controle
–Tipos de dados e estruturas
–Sintaxe
7. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Legibilidade
•Simplicidade
–Afeta fortemente a legibilidade;
–Menor quantidade de componentes básicos;
–Menor quantidade possível de maneiras diferentes de fazer a mesma coisa;
C
cont = cont + 1;
cont += 1;
cont++;
++cont;
Pascal
cont := cont + 1;
Inc(cont);
8. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Legibilidade
•Simplicidade
–Menor quantidade possível de operações diferentes feitas por um único operador
C: operador *
// multiplicação
cont = cont * 4;
// ponteiros
*cont = x;
Pascal: operador *
// multiplicação
cont := cont * 4;
// ponteiros
cont^ = x;
9. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Legibilidade
•Simplicidade
–A simplicidade exagerada pode tornar a linguagem mais dificil de ler (ex.: assembly)
10. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Legibilidade
•Estruturas de controle
–Um programa que pode ser lido linearmente do início ao fim é muito mais fácil de ser entendido;
–Estruturas if-then-else, while, for e etc. permitem leitura mais compreensível;
Basic início da década de 70
C
10 READ R
20 IF R = 0 THEN GOTO 50
30 PRINT R
40 GOTO 10
int r = 1;
while (r != 0) {
scanf(&r);
if (r != 0) printf(“%d”,r);
}
11. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Legibilidade
•Tipos de dados e Estruturas
–Possibilidade de definir estruturas
Fortran 77
C
CHARACTER (LEN = 30) NOME (100)
INTEGER IDADE(100)
INTEGER N_REGISTRO(100)
typedef struct {
char nome[30];
int idade;
int n_registro;
} Funcionario;
Funcionario func[100];
12. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Legibilidade
•Tipos de dados e Estruturas
–Tipos de dados
C
Pascal
int valor_ok;
valor_ok = 0;
valor_ok = 1;
Var
Valor_ok : Boolean;
Valor_ok := false;
Valor_ok := true;
13. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Legibilidade
•Sintaxe
–Identificadores com tamanhos reduzidos prejudicam a legibilidade
–Palavras especiais
•begin end; { };
•end if, end for;
–Forma e significado;
•Uma mesma palavra com uma única função
14. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Critérios de Avaliação de LP
•Critérios mais utilizados:
–Legibilidade (readability)
–Capacidade de escrita (writability)
–Confiabilidade
–Custos
15. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Capacidade de escrita
•Indica a facilidade de uma linguagem em ser usada em determinado problema;
•Deve ser considerada no contexto do domínio do problema da linguagem;
16. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Capacidade de escrita
•Principais fatores de avaliação:
–Simplicidade;
–Ortogonalidade;
–Suporte para abstração;
–Expressividade;
17. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Capacidade de escrita
•Simplicidade:
–Excesso de construções;
–Programadores aprendem somente parte da linguagem;
18. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Capacidade de escrita
•Ortogonalidade:
–Capacidade de combinar um conjunto pequeno de primitivas para criar um conjunto relativamente pequeno de estruturas de controle;
19. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Capacidade de escrita
•Suporte para abstração:
–Possibilidade de definir e usar estruturas complexas sem que os aspectos internos sejam mostrados ao programador;
•Ex.: criação de funções
20. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Capacidade de escrita
•Expressividade:
–Formas simples de executar operações frequentes e complexas;
•Ex.: criação de janelas no Delphi
Var fm : Tform;
Begin
fm := Tform.Create;
fm.Show;
End;
21. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Critérios de Avaliação de LP
•Critérios mais utilizados:
–Legibilidade (readability)
–Capacidade de escrita (writability)
–Confiabilidade
–Custos
22. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Confiabilidade
•Comportamento conforme especificação em todas as situações;
–Principais fatores:
•Verificação de tipos
•Manipulação de exceções
•Legibilidade e capacidade de escrita
23. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Critérios de Avaliação de LP
•Critérios mais utilizados:
–Legibilidade (readability)
–Capacidade de escrita (writability)
–Aplicabilidade
–Custos
24. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Custos
•Custo de treinamento
•Custo de escrita de programas
•Custo de compilação
•Custo de execução
•Custo de implementação
•Custo de confiabilidade
•Custo de manutenção
25. PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação
jose.meirelles@aedu.com
Exercícios
•Capítulo 1
–Questões de Revisão
•1-19
–Problemas
•3,4,7,8,9