quinta-feira, 5 de março de 2009

Critérios de Avaliação de linguagens de programação

Por (Rodney Ribeiro / Kamyla Mayara / Jaqueline Spindula)

São os critérios:

LEGIBILIDADE (Critério mais importante)

ü Através do exame de um programa escrito por outra pessoa, poder seguir a sua lógica e descobrir a presença de erros.

Fatores mais importantes:

- Simplicidade -> Permite conhecer a linguagem toda;

- Ortogonalidade -> Todas as combinações dos mecanismos primitivos são válidas;

- Comandos de Controle de Qualidade;

- Estrutura de Tipos de dados de Qualidade;

- Sintaxe Racional -> Com palavras reservadas, construções diferentes para mecanismos diferentes;


REDIGIBILIDADE(Capacidade de escrita)


ü Forma de expressar um problema de forma natural, sem desviar a atenção do programador para “truques ” da linguagem.

Fatores mais importantes:

- Simplicidade, Ortogonalidade, Suporte para abstração (ajuda a dominar a complexidade dos problemas), Expressividade (construções simples para operações freqüentes).


SEGURANÇA(Confiabilidade)

ü Escrever programas garante atingir o efeito desejado.

Fatores mais importantes:

- Sistema de Tipos Estáticos -> Detecta todas as incompatibilidades de tipo em tempo de compilação;

- Tratamento de Exceções -> Permite a tomada de medidas corretivas em situações inesperadas;

- Ausência de Sinonímia -> É perigoso uma mesma entidade ser conhecida por dois nomes diferentes;

EFICIÊNCIA

ü Atualmente a eficiência já não é mais medida apenas com base na velocidade execução dos programas e na economia do uso da memória, considera-se também o esforço necessário para produzir os programas e para os manter.

CUSTO

ü Para determinar o custo final de uma linguagem de programação, devemos levar em consideração alguns fatores:

- Treinamento -> Quanto maior a complexidade e quanto mais recursos contém a linguagem maior o grau de dificuldade de aprendizado;

- Programação -> Está ligado aos fatores de simplicidade: quanto menor o numero de componentes básicos, mais fácil a leitura e a programação do código fonte,

Exemplo: Comandos que tem a mesma finalidade:

cont:= cont +1

cont ++

- Compilação -> Existem duas situações de compilação de programas:

1- Programas auto executáveis (EXE, COM, etc)

2- Programas que dependem de um “rum time” para ser executado (FLX-Dataflex);

No primeiro caso a distribuição do aplicativo é mais simples, pois independe que o cliente tenha que adquirir ferramentas de linguagem para a execução, que encarece consideravelmente o custo final do projeto.

- Execução -> Otimização é a palavra chave. Trata-se de preocupação em desenvolver um código otimizado, com execução mais rápida.

- Teste -> Testes realizados na linguagem visam confiança. Em sistemas Críticos se houverem falhas, o custo pode tornar-se elevado.

- Manutenção -> Visa corrigir ou modificar para adicionar/remover recursos. O custo da manutenção mede-se principalmente pelas suas características de legibilidade, quanto mais fácil é escrever o programa, mais fácil torna-se a manutenção. Os fatores mais consideráveis em termos de custos de linguagem são o desenvolvimento do programa, manutenção e confiabilidade, sendo as duas últimas mais onerosas.

- Evolução -> É complicado prever a evolução da linguagem, mesmo da aplicação desenvolvida pela linguagem, quando notamos a grande variedade de dispositivos e tecnologias que surgem freqüentemente, as quais podemos implementar em nossas aplicações. Um fator muito importante diz respeito justamente à capacidade de implementações: a portabilidade. Deve ser avaliado o que determina a faixa de utilização da linguagem e encontrar boa definição na documentação sobre a que se propõe a linguagem.



Custo/ Benef ício (“Trade- of fs”) no projeto de LPs

Confiabilidade vs Custo de execução

Ada, ao contrário de C, verifica todos os índices de arranjos para garantir que estão dentro do intervalo. A verificação da validade do índice de um array aumenta a confiabilidade através de mais instruções, mas isso significa custo de execução.

Simplicidade de escrita vs Legibilidade

Uma linguagem compacta é mais simples de escrever, contudo a sua leitura pode ser muito ruim.Comando em APL que gera uma lista de primos entre 1 e N, inclusive:

(2 = 0 +.= T o.| T) / T <- iN

Flexibilidade vs Segurança

C, ao contrário de Java, permite operações aritméticas sobre apontadores.Porém, em linguagem C, o tipo void pode conter qualquer tipo de dados, o que pode ser perigoso.


Bibliografia

SEGALA,Paulo César et al.Critérios de Avaliação de Linguagem – Custo.Disponível em: <www.mguacu.com.br/paradg_custo.doc>. Acesso em: 27 fev. 2009.

PINTO,Bruno Queiro.Conceitos Iniciais e Características de uma Linguagem de Programação.Disponível em: <www.inf.fesurv.br/~bruno/disciplinaPP/arquivos/aulas/aula02.ppt>.Acesso em:27 fev. 2009.

DIAS,Artur Miguel.O Essencial Sobre Linguagem de Programação.Disponível em: <ssdi.di.fct.unl.pt/seminf/docs/aula06/2006-SEMINARIO_LP.ppt>.Acesso em: 27 fev. 2009.

BRILHANTE,Virgínia et al.Linguagens de Programação.Disponível em: .Acesso em: 27 fev. 2009.


15 comentários:

  1. Boa postagem, mas não entendi por que o critério de "Legibilidade" foi definido como o mais importante. Seria possível esclarecer isto?

    ResponderExcluir
  2. Nos conteúdos que pesquisamos achamos sempre a LEGIBILIDADE como melhor opção, mas eu acredito que seria a REDIGIBILIDADE como fator mais importante.
    Acredito também que a eles destacam a LEGIBILIDADE, pois o fato de você ter um código facilmente legível afeta a segurança,o custo e resumindo quase tudo o que foi dito.A mesma coisa seria para um código de leitura abstrusa.
    Mas,voltando em minha opnião,a LEGIBILIDADE é um segundo passo da REDIGIBILIDADE, onde se você decide como vai ser a leitura e enfim todo o resto.A minha opnião talvez seja de um ponto de vista totalmente diferente do "FATOR MAIS IMPORTANTE",onde eu vejo a criação até o momento usado e talvez eles vêem como importante um foco de visão para a criação, mais é isso o que eu acho e gostaria de mais opiniões.

    ResponderExcluir
  3. Achei interessante a postagem,e creio que a redigibilidade seja importante para a manutenção do programa, e no entendimento do código, mas estou com uma dúvida:
    A legibilidade é que interfere na redigibilidade ou a redigibilidade que interfere na legibilidade??

    ResponderExcluir
  4. Bem primeiramente desculpe o atraso Henrique depois agradeço pelo comentário.
    Como eu havia dito,em minha opinião, tudo depende de um ponto de visão.Há o ponto onde vc encherga a legibilidade como fator importante(o caso dos artigos e textos que achei) aí sim afeta a redigibilidade, onde você procura ter uma legibilidade mais clara ou não,afetando ou alterando a redigibilidade.

    E há outro que ao criar redigibilidade como foco mais importante, você controla totalmente a legibilidade.

    ResponderExcluir
  5. Muito bom o acervo de informação redigido por vcs. Saber o que e onde legibilidade, redigibilidade, ortogonalidade... influenciam no progresso de confecção da linguagem é trabalhoso. Mas o fato de grande importância que vejo é a segurança, a legibilidade e simplicidade que a linguagem apresenta, onde o ênfase poderia ser maior. No mais parabéns pela postagem.

    ResponderExcluir
  6. Este comentário foi removido pelo autor.

    ResponderExcluir
  7. Este comentário foi removido pelo autor.

    ResponderExcluir
  8. Este comentário foi removido pelo autor.

    ResponderExcluir
  9. As informações coletadas são de grande importância no cotidiano de todos. No caso de definir qual o critério mais importante, acredito que seja bem difícil já que um interfere no outro. No meu entender, os critérios de legibilidade e redigibilidade andam sempre juntos, e os mesmos interferem diretamente na segurança.
    Mas no mais, Parabéns !!!

    ResponderExcluir
  10. Boa moçada bacana a postagem de voces acho q com essas explicações, cada pessoa que busca uma linguagem em sua área especifica, pode se direcionar através desses requisitos em busca de uma ferramenta mais útil e proveitosa, bacana a pesquisa!!!

    ResponderExcluir
  11. Muito obrigada galera, pelos comentários, que bom vocês gostaram do tema e da pesquisa que fizemos, ficamos muito felizes de ter tirado algumas dúvidas e aumentado um pouco o conhecimento de todos, principalmente pra quem gosta e deseja seguir nessa carreira.
    Aguardamos mais comentários!!!

    ResponderExcluir
  12. Ficou muito bom, tudo explicado de forma
    bem simples nada complexo de fácil
    entendimento, é complicada essa coisa de
    critérios, uma linguagem pode ser boa por um
    lado e ruim por outro mas fazer o que né.

    ResponderExcluir
  13. Opa...

    Bom post... por causa desse ai acertei a questão da prova. Bem explicado e detalhado.

    Gostei...

    Falow...

    ResponderExcluir