25
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

Plp aula-02-critérios de avaliação

Embed Size (px)

DESCRIPTION

Paradigmas de Linguagem de Programação - Aula 2 - Critérios de Avaliação de Linguagens

Citation preview

Page 1: Plp aula-02-critérios de avaliação

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

Page 2: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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

Page 3: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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

Page 4: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Critérios de Avaliação de LP

• Critérios mais utilizados:

– Legibilidade (readability)

– Capacidade de escrita (writability)

– Confiabilidade

– Custos

Page 5: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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?

Page 6: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Legibilidade

• Principais fatores de avaliação

– Simplicidade

– Estruturas de controle

– Tipos de dados e estruturas

– Sintaxe

Page 7: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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

Page 8: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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;

Page 9: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Legibilidade

• Simplicidade

– A simplicidade exagerada pode tornar a linguagem mais dificil de ler (ex.: assembly)

Page 10: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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

Page 11: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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];

Page 12: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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;

Page 13: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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

Page 14: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Critérios de Avaliação de LP

• Critérios mais utilizados:

– Legibilidade (readability)

– Capacidade de escrita (writability)

– Confiabilidade

– Custos

Page 15: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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;

Page 16: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Capacidade de escrita

• Principais fatores de avaliação:

– Simplicidade;

– Ortogonalidade;

– Suporte para abstração;

– Expressividade;

Page 17: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Capacidade de escrita

• Simplicidade:

– Excesso de construções;

– Programadores aprendem somente parte da linguagem;

Page 18: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Capacidade de escrita

• Ortogonalidade:

– Capacidade de combinar um conjunto pequeno de primitivas para criar um conjunto relativamente pequeno de estruturas de controle;

Page 19: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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

Page 20: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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;

Page 21: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Critérios de Avaliação de LP

• Critérios mais utilizados:

– Legibilidade (readability)

– Capacidade de escrita (writability)

– Confiabilidade

– Custos

Page 22: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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

Page 23: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Critérios de Avaliação de LP

• Critérios mais utilizados:

– Legibilidade (readability)

– Capacidade de escrita (writability)

– Aplicabilidade

– Custos

Page 24: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

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

Page 25: Plp aula-02-critérios de avaliação

PLP – Aula 2 – Critérios de Avaliação de Linguagens de Programação [email protected]

Exercícios

• Capítulo 1

– Questões de Revisão

• 1-19

– Problemas

• 3,4,7,8,9