Você está na página 1de 9

Facilidade de ler e escrever programas Legibilidade influi:

desenvolvimento e depurao de programas manuteno de programas desempenho de equipes de programao

Fatores que melhoram a legibilidade:


Abstrao de dados Comandos de controle Modularizao de programas Documentao Convenes lxicas, sintaxe e semntica
Exemplo em Java: nomes de classes iniciam por letra maiscula, nomes de campos usam letras minsculas

Representao de cada conceito seja simples de aprender e dominar


Simplicidade sinttica exige que a representao seja feita de modo preciso, sem ambigidades
contra-exemplo: A++; A=A+1; A+=1; ++A.

Simplicidade semntica exige que a representao possua um significado independente de contexto


contra-exemplo: private: B b; class B: private A

Simplicidade no significa conciso


A linguagem pode ser concisa mas usar muitos smbolos especiais Exemplo: linguagens funcionais

Representao clara e simples de dados e procedimentos a serem executados pelo programa


Exemplo: tipos de dados em Pascal

Expressividade x conciso
muito concisa: falta expressividade? muito extensa: falta simplicidade?

Linguagens mais modernas:


incorporam apenas um conjunto bsico de representaes de tipos de dados e comandos aumentam o poder de expressividade com bibliotecas de componentes Exemplos: Pascal, C++ e Java

Possibilidade de combinar entre si, sem restries, os componentes bsicos da LP


Exemplo: permitir combinaes de estruturas de dados, como arrays de registros Contra exemplo: no permitir que um array seja usado como parmetro de um procedimento

Componente de primeira ordem: pode ser livremente usado em expresses, atribuies, como argumento e retorno de procedimentos Influenciada pelo modelo de LP
Modelo de Objetos: objeto Modelo funcional: funes

Multiplataforma:
capacidade de um software rodar em diferentes plataformas sem a necessidade de maiores adaptaes Sem exigncias especiais de hardware/software Exemplo: aplicao compatvel com sistemas Unix e Windows

Longevidade:
ciclo de vida til do software e o do hardware no precisam ser sncronos; ou seja, possvel usar o mesmo software aps uma mudana de hardware

Mecanismos que facilitem a produo de programas que atendam s sua especificaes


Tipagem forte: o processador da linguagem deve
assegurar que a utilizao dos diferentes tipos de dados seja compatvel com a sua definio evitar que operaes perigosas, tal como aritmtica de ponteiros, seja permitida

Tratamento de excees: sistemas de tratamento de excees permitem construir programas que


possuam definies de como proceder em caso de comportamento no usual possibilitem tanto o diagnstico quanto o tratamento de erros em tempo de execuo

Dcada de 70: engenharia de software


Abstrao de dados: definio de tipos Abstrao de controle: comandos, procedimentos Inicia preocupao com programao em larga escala: mdulos e programao estruturada

Exemplos de linguagens populares:


Uso acadmico:Algol (algoritmos), Pascal (tipos de dados) Uso comercial: Cobol (arquivos), PL/I (uso amplo)

Dcada de 80: modularizao


nfase em mecanismos de LP e abstraes Correo de programas: verificao de tipos, excees Programao concorrente e distribuda e tempo real Programao baseada em objetos (TADs) Programao orientada a objetos (herana)

Exemplos de linguagens
Uso acadmico: Pascal / Modula Programao de tempo real: Ada 83 Orientada a objetos: Smalltalk

Dcada de 90: base na estrutura


Estruturao de dados: encapsulamento Estruturao da computao: classe Estruturao do programa: classes e objetos Programao para Internet: plataforma neutra Pascal / Delphi C / C++ Ada83 / Ada95 Java

Exemplos de linguagens