comparativo de linguagens de programação

Propaganda
COMPARATIVO DE LINGUAGENS DE PROGRAMAÇÃO(1)
Nathália P. Martins(2), Ezequiel L. Vidal(3), Nadja T. S. Christo(4), Aline V. Mello(5)
(1)
Trabalho executado no âmbito da disciplina Projeto de Linguagens de Programação, Universidade Federal do Pampa,
Alegrete;
(2)
Graduanda do curso de Ciência da Computação, Universidade Federal do Pampa, Alegrete, Rio Grande do Sul;
[email protected];
(3)
Graduando do curso de Ciência da Computação, Universidade Federal do Pampa, Alegrete, Rio Grande do Sul;
[email protected];
(4)
Graduanda do curso de Ciência da Computação, Universidade Federal do Pampa, Alegrete, Rio Grande do Sul;
[email protected];
(5)
Professora Orientadora, Universidade Federal do Pampa, Alegrete, Rio Grande do Sul; [email protected];
Palavras-Chave: linguagens de programação, C, Python, Java.
INTRODUÇÃO
Um computador é capaz de processar um conjunto de instruções conhecido como código de máquina,
representado por uma sequência de bits formada por 0 e 1. Normalmente essas instruções são sequências
muito simples de operações, como somar dois valores, sendo elas executadas pelo processador. Uma das
linguagens mais conhecidas nesse aspecto é o Assembly, ou linguagem de montagem, uma notação legível
para humanos que uma arquitetura de computador pode utilizar. Com o passar dos anos, entretanto,
programadores concluíram que perdiam muito tempo utilizando linguagens de montagem e passaram a
pensar nos conceitos de linguagem de alto nível, visando facilitar a resolução de problemas por meio de
algoritmos (CARVALHO, 2012). Essas linguagens comunicam instruções para o computador, sendo
definidas como um conjunto de regras sintáticas e semânticas usadas para a construção de um software.
Diversas características as tornam diferentes, fazendo com que programadores começassem a pesquisar
antes de escolhê-las.
Nesse sentido, este artigo tem como objetivo comparar três linguagens de programação: C, Java e
Python, por meio de algoritmos simples usando como critérios de comparação a legibilidade, a facilidade de
escrita e o tempo de execução.
METODOLOGIA
As linguagens de programação escolhidas para realizar esse estudo foram Python, Java e C,
linguagens que figuram na maioria das pesquisas sobre linguagens mais populares da atualidade
(ZAPALOWSKI, 2011).
Dois algoritmos foram usados para comparar as linguagens de programação: o somatório de 1 até N;
e a quantidade de números pares de 1 até N. Em ambos, o N recebeu os seguintes valores: 1000 (mil),
10000 (dez mil) e 100000 (cem mil). Os algoritmos foram programados de forma mais simples e rápida em
cada uma das linguagens de programação. As ferramentas Notepad++, Netbeans e Codeblocks foram
utilizadas para escrever e executar os algoritmos.
A comparação entre as linguagens usou três critérios: legibilidade, facilidade de escrita e tempo de
execução. A legibilidade é um critério complexo de ser avaliado, pois depende muito do conhecimento de
quem lê o código. Para avaliar a legibilidade, os códigos foram mostrados para pessoas com conhecimento
básico em programação que receberam orientação apenas sobre o significado dos comandos. A facilidade
escrita foi medida através do número de linhas de códigos necessárias para expressar os algoritmos. Por
volta de 1960, a quantidade de linhas de um código era utilizada para medir a produtividade do programador
(JONES, 2009). Com a evolução das linguagens, essa métrica acabou perdendo seu objetivo inicial, mas
ainda é útil para determinar o quão complexa uma linguagem é. O tempo de execução foi medido em
microssegundos e obtido subtraindo o tempo inicial de execução do algoritmo do seu tempo final.
RESULTADOS E DISCUSSÃO
A maioria das pessoas que avaliaram o critério legibilidade consideraram Python a linguagem com
melhor legibilidade. Apesar disso, algumas pessoas indicaram que Python era simples demais, a ponto de
atrapalhar o entendimento do código. A legibilidade de C foi considerada média. Java foi a linguagem
considerada mais complexa, apesar de parecer mais didática, pois precisa de muitos comandos para fazer
Anais do 8º Salão Internacional de Ensino, Pesquisa e Extensão – Universidade Federal do Pampa
o que as outras duas linguagens fazem de forma mais simples.
A Tabela 1 apresenta o número de linhas de código de cada algoritmo em cada uma das linguagens
avaliadas. É possível ver um dos grandes diferenciais de Python: a facilidade de escrita. Essa linguagem é
fortemente baseada em uma linguagem chamada ABC que visa o aprendizado em programação, pois não
há necessidade de declaração de variáveis, além de ser obrigatória a identação para que o algoritmo
funcione de forma adequada (TELLES, 2008). Essa diferença seria ainda maior se não fossem contadas as
quebras de linha para identação. C e Java apresentam um resultado similar nesse aspecto, tendo ambas
comandos mais complexos. Java é uma linguagem mais didática se comparada às outras, mas parece mais
complexa e desnecessariamente extensa nos dois algoritmos.
Tabela 1 - Número de Linhas dos Algoritmos
Linguagem Números Pares
Somatório
C
24
21
Java
28
24
Python
14
13
Fonte: Elaborado pelos autores.
A Tabela 2 apresenta o tempo de execução para cada algoritmo e os diferentes valores de N. Pode-se
observar a diferença notável entre uma linguagem compilada, como o C, e linguagens interpretadas, como o
Java e o Python. A compilação é um processo que reúne o código fonte e o transforma em linguagem de
máquina, a qual o computador compreende (SEBESTA, 2003). Algumas linguagens mais modernas, como
Java e Python, são interpretadas pela máquina virtual da linguagem enquanto o programa é executado. Isso
requer mais tempo e é por isso que a linguagem C possui o menor tempo de execução para todos os testes.
Tabela 2 - Tempo de Execução dos algoritmos (μs)
Algoritmo
C
Java
Números Pares (1000)
10
76
Números Pares (10000)
68
518
Números Pares (100000)
682
4009
Somatório (1000)
7
38
Somatório (10000)
64
572
Somatório (100000)
737
3679
Python
48
472
2824
29
286
1840
Fonte: Elaborado pelos autores.
CONCLUSÕES
As três linguagens possuem estruturas de controle similares, mudando apenas a forma de escrita,
mas mantendo seus objetivos. Esse fato facilita o aprendizado de novas linguagens de programação, assim
como a leitura das mesmas. Considerando as análises realizadas, pode-se concluir que Python é, como diz
sua filosofia, uma linguagem simples e eficaz, provando ser a melhor linguagem em dois dos três critérios
avaliados: legibilidade e facilidade de escrita. A linguagem C foi a que se mostrou ser a mais rápida porque
é compilada enquanto as demais são interpretadas. O Java não obteve nenhum destaque muito devido aos
algoritmos e aos critérios utilizados na comparação. O Java é uma linguagem de programação orientada a
objetos que possui características como encapsulamento e ocultamento de informação, as quais privilegiam
a manutenção e o reuso de código, critérios não explorados nesse estudo. Como trabalho futuro cita-se
ampliar o número de linguagens de programação comparadas, o número de algoritmos testados e os
critérios usados.
REFERÊNCIAS
JONES, C. Software Engineering Best Practices: Lessons from Successful Projects in the Top Companies. 2. Ed.
McGraw-Hill, 2009.
SEBESTA, R. Conceitos de Linguagens de Programação. 5. Ed. Bookman, 2003
TELLES, M. Python Power!: the comprehensive guide. 1. Ed. Thomson Course Technology, 2008.
CARVALHO, E. Linguagens de Programação. Disponível em: < https://goo.gl/nU3bdu >. Acesso em 12 jul. 2016.
ZAPALOWSKI, V. Análise quantitativa e comparativa de linguagens de programação. Disponível em: <
http://www.lume.ufrgs.br/bitstream/handle/10183/31036/000782127.pdf >. Acesso em 5 jul. 2016.
Anais do 8º Salão Internacional de Ensino, Pesquisa e Extensão – Universidade Federal do Pampa
Download