Você está na página 1de 4

Critérios Para Seleção de uma Linguagem de

Programação
Derick E. D. Rosa1, Renato R. M. Oliveira1
1
Instituto de Ciências Exatas e Naturais (ICEN) – Universidade Federal do Pará
Campus Universitário do Guamá, Av. Augusto Corrêa, no.1, CEP: 66.075 – 900
Cidade: Belém-PA
{derick.rosa,renato.oliveira}@icen.ufpa.br

1. INTRODUÇÃO
Diante da grande diversidade de linguagens e ferramentas, evolução
tecnológica, expansão da computação móvel e crescente exigência de qualidade,
escolher uma linguagem de programação se tornou uma tarefa árdua. Muitas vezes sua
importância é ignorada e as escolhas são baseadas apenas em preferências dos
desenvolvedores ou políticas da empresa, sem um critério realmente válido do ponto de
vista técnico.
Uma linguagem de programação é caracterizada em termos de uma gramática e
um significado bem definidos. Além disso, a linguagem deve ser implementável
(executável) com eficiência aceitável e deve ser universal, no sentido que deve ser
possível expressar todo problema computável nessa linguagem; recursão, comandos de
interação (como while loops) ou mesmo comandos de desvio (como go to) são
suficientes para garantir universalidade a uma linguagem de programação.
Ao se estudar os critérios de seleção das linguagens de programação, obtemos
um conhecimento que nos ajuda a compreender e utilizar qualquer linguagem, uma vez
que o conhecimento de diversas linguagens, seus paradigmas, limitações e vantagens
são base de escolha da linguagem apropriada para resolver um determinado problema
ou para desenvolver um  projeto, logo, o programador fará um melhor uso da linguagem
de programação. Este trabalho visa introduzir conceitos que podem auxiliar na escolha
com critérios, indispensáveis para conduzir a uma tomada de decisão mais
consciente, não se trata de um indicativo das melhores linguagens, porém um
conjunto de conceitos essenciais para se fazer uma escolha técnica e imparcial.

2. CRITÉRIOS PARA AVALIAÇÃO DE UMA LINGUAGEM DE


PROGRAMAÇÃO
No processo de avaliação de uma linguagem de programação é necessário o
entendimento de conceitos importantes são eles: legibilidade, simplicidade,
expressividade, ortogonalidade, confiabilidade e portabilidade.
De forma geral, a Legibilidade diz respeito à facilidade que os programas podem ser
lidos e compreendidos. Esta característica influi direta ou indiretamente na
produtividade, depuração e manutenção do software. Por exemplo, um programa
que pode ser lido de cima a baixo, é muito mais fácil de entender do que aquele que
exige do leitor pular de uma instrução à outra para seguir a ordem de execução. A
sintaxe também influencia na legibilidade dos programas, reduzir os identificadores a
tamanhos pequenos a prejudica; a aparência do programa é influenciada pelas formas
das palavras especiais de uma linguagem; a presença de facilidades adequadas para
definir tipos de dados e estruturas de dados em uma linguagem e projetar instruções
para que sua aparência indique sua finalidade, é um auxílio para a legibilidade.
É totalmente importante que uma linguagem de programação seja fácil de ser
aprendida e dominada. Isso representa a sua Simplicidade. A simplicidade pode ser
tanto sintática quanto semântica. A simplicidade sintática exige que não haja
ambigüidades na representação da linguagem, sendo tudo feito de um modo preciso. Já
a simplicidade semântica refere-se a independência das palavras de uma linguagem de
programação ao contexto. Quanto mais simples for uma linguagem, mais rápido será o
seu aprendizado e mais rápido a solução para algum problema poderá ser encontrado.
A Expressividade refere-se à adequação das formas de especificar
computações, dados e procedimentos a fim de que se apresentem de forma clara e
simples.
Todas as linguagens de programação são igualmente expressivas, se um
algoritmo/processo pode ser implementado numa certa linguagem, então também pode
ser implementado noutra linguagem qualquer. A facilidade de expressão disponibilizada
é muito importante! A expressividade de uma linguagem de programação depende dos
conceitos primitivos por esta disponibilizados. A inclusão da instrução “for” em uma
linguagem de programação torna mais fácil à escrita de laços de contagem do que com o
uso de “while”, por exemplo,

Em Java.
aList.get(aList.size -1)

Em Ruby.
anArray.last

Fica claro que o código parece ser melhor expresso com Ruby. "Ser
expressivo" pode facilitar futuras manutenções, ampliações e integrações no código.
Quando se fala de combinar estruturas de uma linguagem de programação, de
forma que melhor se adapte ao problema a ser resolvido, isso se refere à Ortogonalidade
de uma linguagem de programação. Desse modo é gerado um grande número de
combinações de estruturas em uma linguagem de programação, ampliando ainda mais a
sua área na resolução de diversos problemas.
Alguns exemplos de ortogonalidade são a combinação de arrays com registros,
onde cada espaço do vetor abrangeria um registro. Outro exemplo é a interação entre
ponteiros e os tipos primitivos de dados (inteiro, real, caractere), onde o ponteiro deve
ser capaz de apontar para qualquer tipo de variável ou estrutura de dados.
A Confiabilidade está diretamente ligada à facilidade de escrita e a legibilidade
(pois há mais facilidade na correção de um programa) e refere-se aos mecanismos que
permitem o desenvolvimento de programas conforme o conjunto de  requisitos.
Assim para se obter uma grande confiabilidade é interessante que a linguagem
ofereça suporte as seguintes capacidades: (1) verificação de tipos; (2) manipulação de
exceções; (3) legibilidade e Capacidade de Escrita.
O suporte a verificação de tipos, consiste em assegurar que as operações
considerem os dados sempre conforme seus tipos corretos, ou seja, de acordo com a
definição de tipo. Quanto ao tratamento de exceções a linguagem deve permitir que
procedimentos especiais sejam executados em caso de comportamento não
usual e ainda que seja permitido diagnosticar erros em tempo de execução.
A Portabilidade refere-se à capacidade de uma linguagem de programação ser
multiplataforma, ou seja, de rodar em várias plataformas, sem que sejam necessárias
adaptações, como a adaptação de hardware ou software. Uma outra coisa importante no
critério da portabilidade é a longevidade, onde os ciclos de vida útil dos softwares e
hardwares não precisam estar síncronos, sendo permitida, deste modo, a mudança de
ambos, sem que afete a execução da linguagem de programação.

3. CRITÉRIOS PARA SELEÇÃO DE UMA LINGUAGEM DE


PROGRAMAÇÃO
Quando propõe-se o projeto e desenvolvimento de um software, caso o cliente não
apresente um requisito técnico especificando qual a linguagem deverá ser utilizada,
deve-se avaliar e selecionar dentre as diversas tecnologias disponíveis a que vai trazer
mais retornos para o projeto em questão. Nesse processo de seleção identificam-se
vários aspectos importantes a serem considerados como a implementação, competência
do programador na linguagem, semântica, ambiente de programação e o modelo de
computação.
A Implementação refere-se ao tradutor da linguagem que é utilizado, e possibilita usar a
linguagem mais inteligentemente, pois estará avaliando as conseqüências de suas
decisões. Requer mais esforço implementar um linguagem de programação do que
projetar um processador para a linguagem. O implementador também deveria ter “os
recursos para escrever manuais de usuários, textos introdutórios e avançados; ele
deveria construir ferramentas auxiliares de programação e procedimentos de bibliotecas;
e, finalmente, deveria ter a vontade e os recursos, de natureza política, para vender a
linguagem aos fregueses a que ela se destina. Como métodos de implementação existem
a compilação, interpretação pura, implementação híbrida. (Hoare 1973).
Outro motivo que afeta fortemente a escolha de uma linguagem de
programação é o conhecimento, a Competência do Programador na linguagem. É óbvio
que dentre um leque de opções de linguagens de programação, se um programador
souber utilizar uma certa linguagem do que as outras, essa linguagem será uma forte
candidata a ser utilizada como linguagem principal. Porém, quando se trata de um
grande número de programadores, como em uma empresa por exemplo, esse critério já
não se torna tão decisivo, pois deve ser levado em consideração aos paradigmas que
uma linguagem de programação possa resolver, para que a empresa tenha um bom
desempenho. Por outro lado, se uma empresa optar por uma linguagem que a maioria
dos programadores não saiba, já haveria um custo maior com os cursos que deveriam
ser propostos a eles.
A Portabilidade trata da possibilidade de migração de um software, entre
plataformas ou entre hardwares distintas, e pode ou não ser essencial dependendo do
contexto e finalidade do desenvolvimento do software.
Por exemplo, um software desenvolvido em Java pode ser executado em
qualquer equipamento que possua um interpretador Java instalado.
Como já comentado, pode ser que em alguma situação, mesmo que um
programador saiba muito bem utilizar uma determinada linguagem de programação, ela
pode não resolver uma certa quantidade de problemas, sendo assim, é bom que se
escolha uma linguagem de programação levando em consideração o critério da sintaxe,
pois algumas aplicações se adaptam melhor à sintaxe de uma linguagem do que as
outras.
A Semântica é a característica relacionada ao significado (ou comportamento)
das linguagens de programação, sendo complementar à sintaxe da linguagem, que se
preocupa em descrever as estruturas de uma linguagem de programação, pois descreve o
significado das estruturas do programa expressos na sua sintaxe. No entanto, ao
contrário da sintaxe, não existe ainda um formalismo aceito globalmente para descrever
a semântica da linguagem.
É possível ainda identificar dois tipos de semântica, a semântica estática que
descreve as características de um programa válido e a semântica dinâmica que se refere
aos resultados da execução do programa.
O Ambiente de Programação também é outro critério importante, pois tanto as
ferramentas que serão utilizadas com a linguagem, tanto a biblioteca, irão afetar a
utilização de determinada linguagem. Quanto melhor for o ambiente de programação,
como um bom editor, um sistema de controle de códigos fontes, uma boa interface com
o próprio desenvolvedor, menor será o esforço para produzir sistemas. Mesmo que
algumas dessas ferramentas sejam independentes da linguagem, como o sistema
operacional, elas podem estar especificadas quanto a uma determinada linguagem de
programação.
Um ponto final para a seleção de uma linguagem de programação é o Modelo
de Computação, ou do processamento. Por exemplo, se uma aplicação requer uma
grande quantidade de busca heurística, seria mais apropriado uma linguagem que segue
o modelo orientado a lógica. Por outro lado, simulações são geralmente mais facilmente
implementadas usando uma linguagem de programação orientada a objetos.

4. REFERÊNCIAS
“Introdução a Paradigmas de Linguagem de Programação”
Acessado em 19/03/2011
http://www.estig.ipbeja.pt/~rmcp/estig/20052006/1s/lp/pdf/teorica/cap1.pdf

“Paradigmas de Linguagem de Programação”,


Acessado em 19/03/2011
http://www.do.ufgd.edu.br/valguimaodakura/aulas-plp/plp_aula01-cap1Sebesta.pdf

Manssour, Isabel, “Paradigmas de Linguagens I”


Acessado em 19/03/2011
http://www.inf.pucrs.br/~gustavo/disciplinas/pli/material/paradigmas-aula01.pdf

Você também pode gostar