2.0_Aspectos-PreliminaresConceitos-e-Critérios

Embed Size (px)

Citation preview

ASPECTOS PRELIMINARES (Conceitos e Critrios)

Aspectos Preliminares

Motivos para estudar Linguagens de Programao; Domnios de Programao; Critrios para avaliao da linguagem.

Motivos para estudar Linguagens de Programao

Aumento da capacidade de expressar idias; Maior embasamento para a escolha de linguagens apropriadas; Capacidade para aprender novas linguagens; Entender melhor a importncia da implementao; Avano global da computao.

Aumento da capacidade de expressar idias A linguagem de programao impe limites quanto aos tipos de estruturas e controle a serem usados; Assim deve-se conhecer uma variedade mais ampla dos recursos de uma linguagem de programao; Aprender recursos de outras linguagens mesmo sendo obrigado a usar uma que no disponibiliza tais recursos.

Maior embasamento para a escolha de linguagem apropriadas

Grande parte dos programadores so autodidatas; Aprenderam linguagens que no so mais utilizadas; preciso estar atualizado e familiarizado para decidir a linguagem a ser usada num novo projeto, de uma forma mais consciente.

Capacidade para aprender novas linguagens O desenvolvimento de software uma profisso fascinante, mas depende de aprendizagem continua; Isto pode gerar um desconforto para quem est vontade com uma linguagem que domina; Para isto, essencial conhecer os conceitos fundamentais das linguagens de programao.

Entender melhor a importncia da implementao

Entender as escolhas que podemos fazer para resolver problemas e suas consequncias; Em alguns casos a compreenso das questes de implementao levam ao entendimento da linguagem; Alguns detalhes so decisivos para encontrar erros.

Avano global da computao Embora normalmente seja possvel saber o motivo pelo qual uma linguagem tornou-se popular, nem sempre as mais populares so as melhores que esto disponveis; Em geral, se aquele que escolhem as linguagens forem melhor informados, talvez linguagens melhores se sobreponham mais rapidamente s ruins.

Domnios de Programao

Aplicaes Cientficas; Aplicaes Comerciais; Inteligncia Artificial;Programao de Sistemas; Linguagens de Scripting.

Aplicaes Cientficas A primeira linguagem para aplicaes cientficas foi o FORTRAN. O ALGOL 60 e seus descendentes tambm se destinam a serem usadas nessa rea; Para as aplicaes cientficas a eficincia a principal preocupao; Nenhuma linguagem foi mais significativa nesta rea do que o FORTRAN.

Exemplos de cdigo em FORTRAN 95

Aplicaes Comerciais A primeira linguagem de alto nvel bem sucedida para os negcios foi o COBOL. As linguagens comerciais so caracterizadas por facilidades para produzir relatrios elaborados, cadastros, armazenamento e processamento das operaes/informaes.

Exemplos de cdigo em COBOL

Inteligncia Artificial - IA uma rea abrangente caracterizada pelo uso de computaes simblicas e complexas; A programao nessa rea requer flexibilidade e heurstica; A 1 linguagem para IA amplamente usada foi a LISP; No incio da dcada de 70 surgiu uma alternativa com a linguagem de programao lgica Prolog.

Exemplos de cdigo em Prolog

Programao de Sistemas Software Bsico: sistema operacional + ferramentas que do suporte programao; Devem oferecer eficincia e rapidez na execuo, alm de recursos de baixo nvel para fazer a interface com dispositivos; O sistema operacional UNIX foi escrito quase inteiramente em C, por ser de baixo nvel, ter execuo eficiente e no sobrecarregar os usurios com muitas restries de segurana.

Exemplos de cdigo em C

Linguagens de Scripting So usadas colocando-se uma lista de comandos, chamados scripts, em um arquivo para serem executados; A JavaScript uma linguagem desenvolvida pela Netscape para o uso tanto em servidores Web como em navegadores.

Exemplos de cdigo em JavaScript

Exerccio

Questes1. Escolha um dos motivos voc estudar linguagens de programao e disserte sobre o mesmo. 2. Por que os analistas de sistemas precisam de embasamento em projeto de linguagens? 3. Como o conhecimento das caractersticas da linguagem de programao pode beneficiar toda a comunidade de computao? 4. O que so domnios de linguagens de programao, exemplificando seu uso e uma linguagem de referncia.

Critrios de avaliao da linguagemLegibilidade: Simplicidade Global; Ortogonalidade; Instrues de Controle; Tipos de Dados e Estruturas; Consideraes sobre a sintaxe.

Capacidade de Escrita: Simplicidade e Ortogonalidade; Suporte para Abstrao; Expressividade.

Confiabilidade: Verificao de Tipos; Manipulao de Excees; Apelidos; Legibilidade e Capacidade de Escrita.

Custo

Legibilidade Trata-se da facilidade em que os programas podem ser lidos e entendidos; Por exemplo, se um programa que descreve uma computao tiver sido escrito em uma linguagem no projetada para esse uso, o programa pode ser antinatural e enrolado, tornando-o difcil de ser lido. Os principais critrios de legibilidade so: Simplicidade global; Ortogonalidade; Instrues de Controle; Tipos de Dados e Estruturas; Consideraes sobre a sintaxe.

Simplicidade global O grande nmero de componentes bsicos torna uma linguagem mais difcil de ser aprendida; A multiplicidade de recursos, ou seja, mais de uma maneira de realizar uma operao particular; Um terceiro problema potencial a sobrecarga(overloading) de operador, onde um nico smbolo tem mais de um significado.

Ortogonalidade Significa que um conjunto relativamente pequeno de construes primitivas pode ser combinado em um nmero relativamente pequeno de maneiras para construir as estruturas de controle e de dados da linguagem. Na linguagem C existem dois tipos de dados estruturados: matrizes e registros (structs). Mas apenas registros podem ser retornados de funes. O ALGOL 68 considerado o projeto de linguagem mais ortogonal j existente.

Instrues de Controle Nas dcadas de 50 e 60 as instrues de controle eram muito limitadas, em particular a utilizao de instrues goto reduzia criticamente a legibilidade do programa. Desde o incio da dcada de 70 as linguagens tem includo instrues suficientes para eliminar a necessidade da utilizao do goto.

Tipos de Dados e Estruturas Facilidades adequadas para definir tipos de dados e estruturas em uma linguagem. Ex: Poderiamos ter numa linguagem uma atribuio do tipo: Soma_e_muito_grande=1;

No entanto o significado no seria to claro quanto numa linguagem com tipos booleanos: Soma_e_muito_grande=true;

Consideraes sobre a sintaxe Exemplos de opes sintticas que afetam a legibilidade: Formas de identificadores. Uma s letra Palavras especiais. Mais palavras reservadas pode levar a um melhor entendimento Forma e significado Quanto mais a aparncia indique pelo menos parcialmente a finalidade.

Capacidade de Escrita a medida que indica quo facilmente uma linguagem pode ser usada para criar programas para um domnio de problema escolhido; Fatores como: simplicidade, ortogonalidade, suporte para abstrao e expressividade so decisivos na capacidade de escrita de uma linguagem.

Confiabilidade Diz-se que um programa confivel se ele se comportar de acordo com suas especificaes sob todas as condies. Os recursos que exercem efeito sobre a confiabilidade so: Verificao de tipos; Manipulao de excees; Apelidos; Legibilidade e capacidade de escrita.

Confiabilidade Verificao de tipos Testar se existem erros de tipo.

Manipulao de excees Capacidade de interceptar erros em tempo de execuo.

Apelidos Dois ou mais mtodos, ou nomes, distintos para fazer referncia mesma clula de memria.

Legibilidade e capacidade de escrita A facilidade de ler e escrever o programa o tornar mais confivel.

CustoCusto de TreinamentoManuteno dos Programas Custo de Escrita

Confiabilidade

Custo de Compilao

Implementao da Linguagem

Custo para Execuo

Critrios de Avaliao da Linguagem e as Caractersticas que os AfetamCaractersticaSimplicidade/ OrtogonalidadeEstruturas de Controle Tipos de dados e Estruturas Projeto da Sintaxe Suporte para Abstrao Expressividade Verificao de Tipos

Legibilidade

Escrita

Confiabilidade

Manipulao de ExceesApelido

Exerccios1. Qual a desvantagem de haver demasiados recursos em uma linguagem? 2. Que exemplo pode ilustrar a falta de ortogonalidade no projeto de C? 3. Qual linguagem usou a ortogonalidade como principal critrio de projeto? 6. D um exemplo de dois critrios de linguagem que esto em conflito direto um com o outro? 7. Qual o problema da legibilidade causado quando se usa a mesma palavra reservada de fechamento para mais de um tipo de instruo de controle? 8. O que significa um programa ser confivel? 9. O que apelido? 10. O que manipulao de excees? 11. Comente sobre os custos finais de uma linguagem de programao.