artigo final - comparação entre linguagens de programação

17

Click here to load reader

Upload: daniel-lauer

Post on 19-Jun-2015

2.776 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Artigo Final - Comparação Entre Linguagens de Programação

UNIVERSIDADE FEDERAL DO PARANÁ

CURSO DE ENGENHARIA ELÉTRICA

ARTIGO CIENTÍFICO

Orientando:Daniel Lauer

Orientador:Waldemiro Pedroso Sobrinho

CURITIBA

Page 2: Artigo Final - Comparação Entre Linguagens de Programação

2008

DANIEL LAUER

COMPARAÇÃO ENTRE LINGUAGENS DE PROGRAMAÇÃO

Artigo Científico escrito por Daniel Lauer, no dia 4 de novembro de 2008, elaborado como avaliação da Disciplina de Relatórios Técnicos, do Curso de Engenharia Elétrica, do Setor de Tecnologia da UFPR.

Orientador: Waldemiro Pedroso Sobrinho

CURITIBA

Page 3: Artigo Final - Comparação Entre Linguagens de Programação

2008

SUMÁRIO

1 INTRODUÇÃO.......................................................................................................................12 LINGUAGENS DE PROGRAMAÇÃO.................................................................................1

2.1 Tipos.................................................................................................................................12.1.1 Estrutura.....................................................................................................................12.1.2 Nível...........................................................................................................................22.1.3 Geração......................................................................................................................2

2.2 Algumas linguagens..........................................................................................................32.2.1 Assembly...............................................................................................................32.2.2 C++.......................................................................................................................32.2.3 Basic......................................................................................................................42.2.4 Java.......................................................................................................................42.2.5 PHP.......................................................................................................................4

3 PRINCIPAIS LINGUAGENS.................................................................................................44 CONCLUSÕES.......................................................................................................................65 REFERÊNCIAS BIBLIOGRÁFICAS.....................................................................................76 PERGUNTAS DURANTE A PALESTRA.............................................................................8

Page 4: Artigo Final - Comparação Entre Linguagens de Programação

1 INTRODUÇÃO

O artigo em questão tem o intuito de apresentar as linguagens de programação, mostrando

as vantagens e desvantagens em diferentes aplicações. Serão apresentadas e classificadas

quanto ao nível de evolução, por geração.

Uma linguagem de programação é um método padronizado para expressar instruções

para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um

programa de computador. Uma linguagem permite que um programador especifique

precisamente sobre quais dados um computador vai atuar, como estes dados serão

armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias.

A necessidade em fazer comparações entre linguagens de programação tem o intuito

indicar a linguagem de programação melhor para a aplicação a ser desenvolvida, baixando o

tempo de programação e custos de desenvolvimento.

2 LINGUAGENS DE PROGRAMAÇÃO

2.1 TiposAs linguagens podem ser classificadas por tipo de estrutura, nível de programação e

pela geração.

2.1.1 Estrutura

Dentro da classificação de estrutura, pode-se definir como linguagens estruturadas e

não estruturadas.

As linguagens estruturadas

São aquelas que possuem estruturas de controle do fluxo do programa, como desvios

condicionais, laços de repetição, procedimentos e funções. A maioria das linguagens

utilizadas é estruturada, como o Pascal e o C.

1

Page 5: Artigo Final - Comparação Entre Linguagens de Programação

Linguagens não estruturadas

O fluxo é controlado em boa parte por desvios diretos para uma parte do código

definida. A linguagem mais conhecida não estruturada é o assembly.

2.1.2 Nível

Na classificação de nível de programação, existem controvérsias entre diferentes

autores, alguns classificam apenas de baixo e alto nível e a maioria classifica entre baixo,

médio e alto nível, o que será adotado.

Linguagens de baixo nível

São linguagens totalmente dependentes da máquina, ou seja, que o programa que se

realiza com este tipo de linguagem não pode ser migrado ou utilizado em outras máquinas.

Ao estar praticamente desenhado a medida do hardware, aproveitam ao máximo as

características do mesmo.

Linguagens de alto nível

São aquelas que se encontram mais próximas à linguagem natural que à linguagem

máquina.

Trata-se de linguagens independentes da arquitetura do computador. Sendo assim, à

princípio, um programa escrito em uma linguagem de alto nível, pode ser migrado de uma

máquina a outra sem nenhum tipo de problema.

Linguagens de Médio nível

Trata-se de um termo não aceito por todos, porém certamente vocês já devem ter

escutado. Estas linguagens se encontram em um ponto médio entre as duas anteriores. Dentro

destas linguagens poderia se situar C já que pode acessar aos registros do sistema, trabalhar

com endereços de memória, todas elas características de linguagens de baixo nível e ao

mesmo tempo realizar operações de alto nível.

2.1.3 Geração

A evolução das linguagens de programação pode ser dividida em 5 etapas ou gerações.

2

Page 6: Artigo Final - Comparação Entre Linguagens de Programação

Primeira geração: linguagem máquina, programação binária.

Segunda geração: criaram-se as primeiras linguagens assembly.

Terceira geração: criam-se as primeiras linguagens de médio e alto nível.

Quarta geração: são linguagens capazes de gerar código por si só, com o qual

se pode realizar aplicações sem ser um conhecedor da linguagem.

Quinta geração: Aqui se encontram as linguagens orientadas à inteligência

artificial.

2.2 Algumas linguagens

Para uma maior eficiência no desenvolvimento de um programa, pode se relacionar as

linguagens de programação, podendo assim definir a linguagem indicada para o

desenvolvimento da aplicação.

Abaixo será citado algumas linguagens importantes, com suas características.

2.2.1 Assembly

Nível Baixo - Não estruturada - 2ª geração

Destinado geralmente a programação de microcontroladores e microprocessadores. Os

comandos possíveis são as mesmas as instruções do componente. Possui baixa velocidade de

programação, por possuir poucas instruções, o que eleva o custo da programação. Podem ser

utilizadas outras linguagens na maioria dos casos, com o C.

2.2.2 C++

Nível Médio – Estruturada - 3ª geração - Orientada a objetos, procedural, orientada pelo fluxo

Indicada em grande parte das aplicações, por ser uma linguagem muito versátil. Pode

ser utilizada para programação de microcontroladores (caso possua a biblioteca do

componente), na criação de softwares para PC como bancos de dados, comunicação via portas

paralelas e seriais, até mesmo sistemas operacionais foram criados na linguagem C. Possui

alto desempenho na compilação, tornando os softwares gerados em C++ mais rápidos.

3

Page 7: Artigo Final - Comparação Entre Linguagens de Programação

2.2.3 Basic

Nível Alto - Não Estruturada - 3ª geração

Linguagem de fácil aprendizado, porém de pouca versatilidade. Versões melhores

como o Visual Basic dão mais recursos tornando a linguagem mais interessante. Utilizado

para programação de alguns microcontroladores, criação de softwares para o Windows, no

caso do Visual Basic.

2.2.4 Java

Nível Alto – Estruturada - 3ª geração - Orientada a objetos - Independência de plataforma

O Java é uma linguagem revolucionaria. Pode ser executada em qualquer sistema

operacional que possua a máquina virtual Java (Java Virtual Machine - JVM), podendo a

mesma aplicação ser executada em PCs, Palmtops, telefones celulares e outros dispositivos.

2.2.5 PHP

Nível Alto – Estruturada - 3ª geração - Orientada a objetos - Independência de plataforma

Linguagem direcionada a automatização de paginas de Internet. Indicada para

trabalhar também com bancos de dados, sendo que possui infinitas possibilidades, por

trabalhar com módulos. Nesta área é a linguagem mais versátil existente. Possui como o Java

independência a plataforma.

3 PRINCIPAIS LINGUAGENS

Pode-se observar com a figura 1 que as linguagens utilizadas na Internet e as

influenciadas pelo C estão sempre em alta, como o Java, o próprio C e seus derivados, Visual

Basic, PHP e Python são as linguagens mais utilizadas globalmente.

Na tabela 1, pode-se comparar as principais linguagens, suas influências, característica

principal e modo de execução.

4

Page 8: Artigo Final - Comparação Entre Linguagens de Programação

Uso Modo de execução

Influências Característica principal

Java20,3% Interpretação

e CompilaçãoC# Orientada a objetos

C15,3%

CompilaçãoAlgol, BCPL

Estruturada, Procedural, Orientada por fluxo

C++10,4%

CompilaçãoC, Simula, Algol 68

Principalmente orientada a objetos

Visual Basic 9,3% Compilação Basic Orientada a objetos e ProcedualPHP 8,9% Interpretação C e Perl Orientada a objetos

Python 5,1% Interpretação ABC, Perl Orientada a objetos

C#4,0%

CompilaçãoC,

Smalltalk

Principalmente orientada a objetos, Refletiva, Passagem de

mensagensDelphi 4,0% Compilação Pascal Orientada a objetos e Procedural

Perl3,9%

InterpretaçãoC, Shell, awk, sed,

Lisp

Funcional, Orientada a objetos e Procedural

Java Script 2,9% Interpretação Java Orientada a objetos e ProceduralTabela 1: Características das principais linguagens [8]

Figura 1: Utilização das Linguagens [8]

5

Page 9: Artigo Final - Comparação Entre Linguagens de Programação

4 CONCLUSÕES

Ao se analisar as linguagens existentes no mercado, assim como suas características,

pode-se escolher a linguagem mais indicada a aplicação pretendida, pode se economizar

tempo de programação e conseqüentemente custos no desenvolvimento.

Para microcontroladores, é indicada a utilização de linguagem C, poupa tempo e linhas

de programação, pois possui inúmeros comandos e é procedural. Porem há casos que há a

necessidade do uso do Assembly, nem todos os microcontroladores possuem a biblioteca em

C.

Para aplicações executáveis é aconselhável utilizar o C ou o Java, são por bons

motivos que são as linguagens mais utilizadas. Como o C, o Java é procedural e orientada a

objetos, deixando o software mais confiável e versátil.

6

Page 10: Artigo Final - Comparação Entre Linguagens de Programação

5 REFERÊNCIAS BIBLIOGRÁFICAS

[1] Linguagem de montagem - Wikipédia, a enciclopédia livre - pt.wikipedia.org/wiki/Assembly

[2] Assembly NumaBoa - www.numaboa.com.br/informatica/assembly/

[3] C (linguagem de programação) - Wikipédia, a enciclopédia livre - pt.wikipedia.org/wiki/C_(linguagem_de_programação)

[4] BASIC - Wikipédia, a enciclopédia livre - pt.wikipedia.org/wiki/BASIC

[5] PHP – Wikipédia - http://pt.wikipedia.org/wiki/PHP

[6] Java (linguagem de programação) - Wikipédia, a enciclopédia livre - pt.wikipedia.org/wiki/Java_(linguagem_de_programação)

[7] Comparação entre linguagens de programação - Wikipédia, a enciclopédia livre - http://pt.wikipedia.org/wiki/Compara%C3%A7%C3%A3o_entre_linguagens_de_programa%C3%A7%C3%A3o

[8] Tiobe Software - http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

The Economics of Programming Language - http://www.welton.it/articles/programming_language_economics.html

[9] Programming Language Usage Graph - http://www.cs.berkeley.edu/~flab/languages.html

[10] Visual Basic – Wikipédia, a enciclopédia livre - http://pt.wikipedia.org/wiki/Visual_Basic

7

Page 11: Artigo Final - Comparação Entre Linguagens de Programação

6 PERGUNTAS DURANTE A PALESTRA

1- Existe compilador de todas as linguagens ou mais de uma?

Não. As linguagens possuem compiladores próprios, podendo haver mais de um

compilador para a mesma linguagem, no caso de diferentes fabricantes.

2- Existe algum software que faça a conversão de uma linguagem em outra?

Sim. Há softwares específicos que convertem uma linguagem em outra. São softwares

bem restritos e pouco disseminados entre o meio dos programadores.

3- Qual a linguagem de programação mais importante para a engenharia elétrica?

Acredito que seja a linguagem C, pois por ser uma linguagem bastante versátil, pode-

se fazer programas para microcontroladores e microcomputadores. Pode-se também

com facilidade manipular o hardware do computador, utilizando portas seriais e

paralelas, controle de acesso a memória.

4- Como fazer a comunicação entre o C e o Java? Qual o melhor para fazer?

Há bibliotecas nas duas linguagens que facilitam a troca de dados, podendo se os

dados serem criptografados e colocados em protocolos específicos conforme a

aplicação. Com a biblioteca COM-DRV da linguagem C e a RXTX da Java, há

comandos de fácil utilização para a troca de dados entre as linguagens por um meio

físico.

8