Вы находитесь на странице: 1из 4

1.

1 Motivos pra estudar conceitos de linguagens de programao Aumento da capacidade de expressar ideias Voc vai conhecer vrios recursos de vrias linguagens e, na hora de programar, ter maior facilidade de resolver os problemas, pois pode utilizar os recursos aprendidos para resolve-los. Caso a linguagem no tenha o recurso, voc pode simula-lo para poder utiliza-lo. Pra quem no tem o conhecimento desses recursos fica mais difcil resolver o mesmo problema. Maior embasamento para escolha de linguagens apropriadas Voc saber qual a linguagem mais adequada pra resolver um determinado problema. A escolha ser mais consciente. Capacidade aumentada para aprender novas linguagens Se voc j estudou sobre um determinado conceito (por exemplo: abstrao de dados), ento voc ter mais facilidade para aprender uma linguagem que use esse conceito. Entender melhor a importncia da implementao Voc vai usar a linguagem com mais eficincia. Por exemplo se voc sabe como a implementao da recuro, ento saber que um algoritmo recursivo tipicamente mais lento que um iterativo equivalente. Aumento da capacidade de projetar novas linguagens Avano global da computao Melhor compreenso da computao como um todo. 1.2 Domnios de Programao 1.2.1. Aplicaes Cientificas Estruturas de dados simples, mas exige grande nmero de computaes aritmticas com nmeros reais. Estruturas de dados mais comuns so matrizes (arrays). Estruturas de controle mais comuns so laos de contagem e as selees. Primeira preocupao era a eficincia. Linguagens: Fortran (a melhor), Algol 60 e a maioria de suas descendentes. 1.2.2. Aplicaes Comerciais Facilidade para produzir relatrios elaborados. Armazena nmeros decimais e textos. Capacidade de especificar operaes aritmticas decimais. Linguagem: Cobol. 1.2.3. Inteligncia Artificial Usa computaes simblicas em vez de numricas. (Manipula nomes no lugar de nmeros). Utiliza listas encadeadas de dados em vez de matrizes. Linguagens: Lisp, Prolog 1.2.4. Programao de Sistemas Teve ter uma execuo rpida, usar recursos de baixo nvel que permitam ao software fazer interface com dispositivos externos. Linguagens: PL/S, Bliss, Extended Algol, C. 1.2.5. Linguagens de Scripting So usadas colocando-se listas de comandos em um arquivo para serem executados.

Linguagens: Sh, Awk, Tcl, Perl, JavaScript. 1.2.6. Linguagens de Propsitos Especiais Linguagens: RPG, APT, GPSS. 1.3 Critrios de avaliao das linguagens

Caracterstica Simplicidade/Ortogonalidade Estruturas de Controle Tipos de Dados e Estruturas Projeto de Sintaxe Suporte para Abstrao Expressividade Verificao de Tipos Manipulao de Excees

Legibilidade * * * *

Capacidade de Escrita * * * * * *

Confiabilidade * * * * * * * *

Apelido (Aliasing) Restrito * Critrios de avaliao da linguagem e as caractersticas que os afetam. 1.3.1 Legibilidade a facilidade com que os programas podem ser lidos e entendidos. A facilidade de manuteno determinada, em grande parte, pela legibilidade dos programas. A legibilidade deve ser considerada no contesto do domnio do problema. Ex: Um programa que executa um computao torna-se mais legvel se for escrito numa linguagem projetada para esse uso. Caractersticas que contribuem para a legibilidade: 1.3.1.1. Simplicidade Global Afeta fortemente a legibilidade. Uma linguagem com um grande nmero de componentes bsicos mais difcil de aprender do que a com poucos componentes. Os programadores que precisam usar uma linguagem grande tendem a aprender apenas um subconjunto da linguagem. Isso vai ocasionar problemas de legibilidade quando o autor do programa utilizar um subconjunto da linguagem que o leitor no esteja familiarizado. Multiplicidade de recursos (Mais de uma maneira de realizar uma operao em particular) diminui a legibilidade. Por exemplo, em C o usurio pode incrementar uma varivel inteira simples de quatro maneiras diferentes: c=c+1 c+=1 c++ ++c Sobrecarga de operador, na qual um nico smbolo tem mais de um significado, pode reduzir a legibilidade se for permitido ao usurio criar sua prpria sobrecarga sem critrio.

Por exemplo, se um usurio definisse o operador + para significar a diferena entre os primeiros elementos de dois vetores que so os operandos. Simplicidade demais tambm diminui a legibilidade. As linguagens de montagem so muito simples e isso torna os programas escritos nelas pouco legveis. 1.3.1.2. Ortogonalidade O uso limitado do conceito de ortogonalidade aumenta a legibilidade. 1.3.1.3. Instrues de Controle O uso indiscriminado das instrues goto reduz a legibilidade do programa. As instrues de controle melhoram a legibilidade. 1.3.1.4. Tipos de Dados e Estruturas A presenas de facilidades adequadas para definir tipos de dados e estruturas de dados em uma linguagem melhora a legibilidade. 1.3.1.5. Consideraes sobre Sintaxe A sintaxe tem um efeito significativo sobre a legibilidade. Abaixo esto trs exemplos de opes de projeto que afetam a legibilidade: Formas identificadoras Restringir identificadores a tamanhos muito pequenos prejudica a legibilidade. Palavras especiais Em Pascal para formar grupos de instrues usado begin...end, o mesmo para todas as instrues de controle. Em Ada cada instruo de controle usa um diferente: if...end if, loop...end loop. Isso torna a legibilidade de Ada maior do que a legibilidade de Pascal. Forma e significado Projetar instrues, a fim de que sua aparncia indique pelo menos, parcialmente sua finalidade, melhora a legibilidade. Por exemplo, nome de instruo que j indica o que a instruo faz. 1.3.2 Capacidade de Escrita (Escritabilidade) Escritabilidade a medida de quo facilmente uma linguagem pode ser usada para criar programas para um domnio de problema escolhido. Segue abaixo os fatores mais importantes que influenciam a escritabilidade de uma linguagem: 1.3.2.1. Simplicidade e Ortogonalidade Se uma linguagem tiver um grande nmero de construes, programadores podem no se familiarizar com todas . Isso pode causar mal uso de alguns recursos e at o desuso de outros que se usados poderiam ser mais elegantes ou mais eficientes do que aqueles usados. Ortogonalidade demais pode prejudicar a escritabilidade. 1.3.2.2. Suporte para Abstrao Abstrao a possibilidade de se definir e usar estruturas complexas sem que os aspectos internos de implementao dessas estruturas sejam vistos pelo programador . A abstrao aumenta a escritabilidade. Existem duas categorias distintas de abstrao: Abstrao de Processos: uso de subprogramas para representar um algoritmo que ser exigido varias vezes no programa. Abstrao de Dados: mais fcil representar uma rvore binria em C++ e Java usando a abstrao de um vrtice da rvore na forma de uma classe com dois ponteiros e um inteiro. Do que representar uma rvore em Fortran 77

usando trs vetores paralelos de nmeros inteiros. 1.3.2.3. Expressividade A linguagem tem formas relativamente convenientes de especificar computaes. Ex: cont++ em C uma maneira conveniente de representar cont=cont +1. 1.3.3 Confiabilidade Um programa dito confivel se ele executa de acordo com suas especificaes sob quaisquer condies. Segue abaixo os fatores que mais influenciam a confiabilidade de uma linguagem: 1.3.3.1. Verificao de Tipos Verifica se os valores atribudos aos tipos esto de acordo com os definidos . 1.3.3.2. Manipulao de Excees a possibilidade de um programa interceptar um erro em tempo de execuo, tomar as medidas adequadas e continuar (ou no) a execuo . 1.3.3.3. Apelidos Aliasing ter dois ou mais mtodos, ou nomes, distintos para fazer referncia mesma clula da memria. um recurso perigoso. 1.3.3.4. Legibilidade e Capacidade de Escrita Quanto mais fcil de escrever um programa, maior a probabilidade dele estar correto. 1.3.4 Custo O custo de uma linguagem de programao uma funo de muitas de suas caractersticas: Custo do treinamento dos programadores para usar a linguagem. Custo para escrever programas na linguagem. Custo para compilar programas na linguagem. Custo para executar programas. Custo do sistema de implementao da linguagem. Custo da m confiabilidade. Custo de manuteno dos programas. 1.4. 1.4.1 1.4.2 1.5. 1.6. 1.7. 1.7.1 1.7.2 1.7.3 1.8. Influncias sobre o Projeto da Linguagem Arquitetura do Computador Metodologias de Programao Categorias de Linguagem Custo / Benefcio do Projeto da Linguagem Mtodos de Implementao Compilao Interpretao Pura Sistemas de implementao Hbridos Ambientes de Programao

Вам также может понравиться