Expressividade => linguagem natural é mais expressiva. Linguagens de programação são menos expressivas, porém precisas.
Como projetar uma LP?
- Quais os problemas a serem resolvidos? => Requisitos
- Como representar, de forma natual, os requisitos desejados? => Expressividade
- Como solucionar problemas de forma adequada? => Paradigma
- Os requisitos são implementáveis? => Implementação
- Dá para implementar de forma eficiente? => Eficiência
Propriedades importantes para uma LP?
- Universalidade => ser possível expressar qualquer problema computável através de atribuição, condições, recursão;
- Legibilidade => simplicidade, ortogonalidade, instruções claras;
- Ortogonalidade => um comando não "atrapalha" o outro. Os comandos funcionam individualmente e também combinados a outros.
- Facilidade de escrita;
- Confiabilidade =>