Programação 1

19
As Línguagens de Programação Escola Secundária de Santo André Curso EFA - Dupla Certificação - Instalação e Manutenção de Sistemas Informáticos - Turma 4S Anabela Alcântara Sandra Gonçalves 03-12-2009

Transcript of Programação 1

Page 1: Programação 1

As Línguagens de Programação

Escola Secundária de Santo André Curso EFA - Dupla Certificação - Instalação e Manutenção de

Sistemas Informáticos - Turma 4S

Anabela Alcântara

Sandra Gonçalves

03-12-2009

Page 2: Programação 1

2

Índice

Introdução ........................................................................................................................................................ 3

Tipos de linguagens ......................................................................................................................................... 4

Por níveis ..................................................................................................................................................... 4

Linguagens de baixo nível ....................................................................................................................... 4

Linguagem de alto nível .......................................................................................................................... 5

Paradigmas .................................................................................................................................................. 6

Imperativo ............................................................................................................................................... 6

Orientado a objectos ................................................................................................................................ 6

Paradigma lógico ..................................................................................................................................... 6

Por geração .............................................................................................................................................. 6

Evolução das linguagens ................................................................................................................................. 7

Compiladores vs Interpretadores ..................................................................................................................... 8

Cronologia das linguagens de programação .................................................................................................. 10

Conclusão ...................................................................................................................................................... 18

BIBLIOGRAFIA ........................................................................................................................................... 19

Page 3: Programação 1

3

Introdução

O computador possuí a capacidade de efectuar cálculos a uma velocidade que os humanos nunca

conseguirão, mas para isso, é necessário que o computador saiba o que fazer, para tal devemos

dizer-lhe o que deve ser calculado e como deve ser efectuado esse cálculo. É através das

linguagens de programação que podemos descrever algoritmos, isto é, permitem ao utilizador

informar o computador através de sequencias, quais os passos que estes devem efectuar para

chegar á solução de um problema.

Os computadores conseguem apenas entender infindáveis sequências de números binários, o

fornecimento dessas instruções em 0s e 1s é muito penoso para o ser humano. Para facilitar essa

comunicação entre humanos e máquinas começaram a ser desenvolvidas linguagens de

programação, diferentes em termos de sintaxe e recursos, mas todas elas com um ponto em

comum: o compilador.

Seja qual for a linguagem de programação utilizada, o humano usa um editor para escrever a

sequência de passos e assim construir um programa, mediante a linguagem escolhida, devem ser

respeitadas as regras de sintaxe para que o compilador as transforme em linguagem que o

computador entenda. Da compilação resulta um conjunto de instruções binárias que serão então

executadas pelo processador.

Dependendo dos problemas a serem resolvidos, as formas de especificação e tratamento podem

ser distintas. Actualmente existem inúmeras linguagens de programação distintas, mais ainda,

continuam a ser criadas, desenvolvidas, melhoradas ou mesmo substituídas. Para quem domina

apenas uma ou duas linguagens de programação este cenário parece desanimador, de certo modo

para o iniciante é difícil encontrar respostas a perguntas do tipo, como conseguir dominar

rapidamente uma nova linguagem de programação? Qual a melhor linguagem para realizar uma

determinada tarefa? Embora á partida pareça uma missão impossível, as semelhanças entre as

linguagens são bastantes.

Esta caracterização será mais fácil quando enquadradas numa perspectiva histórica de evolução

das diversas linguagens, só assim se podem compreender de certo modo, as motivações, funções e

Page 4: Programação 1

4

objectivos da criação dos diferentes paradigmas relativamente às linguagens de programação e

dentro destas as especificações de cada linguagem.

Este trabalho compara os diferentes paradigmas, sendo apresentada inicialmente uma

caracterização em termos de tipo, a compreensão das razões de ser de certas características e do

porquê se certas semelhanças através do estudo da evolução das principais linguagens de

programação.

Tipos de linguagens

Existem diferentes formas de relacionar e representar as linguagens de programação entre si, por

níveis, por árvores genealógicas e por geração.

Por níveis

Segundo o seu âmbito e o seu nível, a disposição hierárquica é a seguinte:

Linguagens de baixo nível

Estas linguagens dependem totalmente do computador, isto é, o programa desenvolvido com este

tipo de linguagem está muito próximo do hardware. È desenhado á medida do hardware e

maximiza o aproveitamento das características e recursos do mesmo. Neste nível existem duas

linguagens: a linguagem máquina e a linguagem Assembler.

A linguagem máquina

Ordena as operações fundamentais do computador para o seu correcto funcionamento. Utiliza a

combinação de 0s e 1s para formar as ordens que o hardware entende. Este tipo de linguagem é

extremamente rápida, a grande desvantagem desta linguagem reside no facto de ser extremamente

difícil de programar e o seu enorme código fonte torna-se praticamente impossível ao humano

detectar falhas

A linguagem Assembler

Deriva da linguagem maquina e é formada por palavras-chave denominadas mnemónicas. A sua

origem possibilitou a criação de programas tradutores para facilitar a passagem de programas

escritos em Assembler para código máquina. A vantagem imediata foi o facto de os

programadores necessitarem de escrever os programas com menos linhas de código fonte e os

Page 5: Programação 1

5

programas criados ocupavam também menos memória. No entanto, esta linguagem não deixava de

ser difícil de aprender e de manter.

Linguagem de alto nível

Os programas são desenvolvidos através de uma linguagem muito próxima á utilizada pelos

humanos, cada declaração corresponde a várias declarações da linguagem de baixo nível. Um

programa escrito numa linguagem de alto nível é mais fácil de entender e seguir cada passo da sua

execução, podem ser encontrados e solucionados problemas mais facilmente e com maior rapidez.

São várias as vantagens das linguagens de alto nível e podem ser enumeradas através das seguintes

propriedades:

Portabilidade: Um programa escrito em linguagem de alto nível pode ser transportado

para qualquer computador que tenha um tradutor apropriado. Em contraste, um programa

escrito em baixo nível é específico para um tipo de computador; isto é, se o programador

desejar executar este programa num outro computador, o programa terá que ser reescrito.

Legibilidade: Ao contrário das linguagens de baixo nível, as linguagens de alto nível

oferecem notações que se assemelham às linguagens humanas. Como consequência,

programas escritos em linguagens de alto nível são muito mais fáceis de serem escritos e

lidos do que os correspondentes programas escritos em linguagem de baixo nível.

Entretanto, escrever um programa numa linguagem de alto nível não garante esta

propriedade, a legibilidade de um programa depende também do próprio programador.

Manutenibilidade. A facilidade que um programa tem de ser mantido, isto é, de ser

modificado, é denominada manutenibilidade. Esta propriedade está intimamente

relacionada com a legibilidade, quanto mais fácil de ser lido um programa é, mais fácil ele

será de ser modificado. Portanto, programas escritos em linguagem de alto nível são mais

fáceis de serem modificados e depurados do que programas correspondentes escritos em

linguagem de baixo nível.

Eficiência. A eficiência de um programa é medida pelo espaço ocupado em memória e

pela rapidez com que é executado. Um programa eficiente ocupa pouco espaço e tem uma

execução rápida. Diferentes sequências de instruções em linguagem máquina podem

resultar em programas que são funcionalmente equivalentes (produzem os mesmos

resultados).

Page 6: Programação 1

6

Paradigmas

As principais árvores genealógicas são divididas por diferentes paradigmas de programação,

Imperativo e Orientado a objectos.

Imperativo

Este tipo de linguagens permitem resolver um problema através de uma série de operações

elementares denominados “comandos” que o computador consegue compreender e executar. Os

comandos são executados em sequência e essa sequência define qual o processo ou procedimento

a seguir, permite também o controlo da mudança de estado das variáveis atribuídas. As variáveis e

o número da instrução em execução descrevem o estado da execução a qualquer instante da sua

execução pelo processador e memória. As linguagens clássicas deste tipo de linguagem são o

FORTRAN, PASCAL, COBOL e o C.

Orientado a objectos

Estas linguagens implicam que organizemos a visão que temos do mundo ou de um problema em

termos de objectos, dos seus atributos e operações. Os programas desenvolvidos através destas

linguagens são vistos como conjuntos de objectos que interagem e cooperam entre si e trocam

mensagens para solucionar um problema. Os objectos com as mesmas características são

agrupados em classes, nesse sentido, uma classe é a representação dos potenciais objectos que

partilham um conjunto de atributos e operações, exemplo dessas linguagens são o JAVA e o C#.

Paradigma lógico

Programação baseada em lógica. Exemplo: Prolog

Por geração

As linguagens agrupam-se segundo um processo de alterações e soluções tecnológicas, este é um

processo descontínuo, é comummente aceite a classificação seguinte em 5 gerações:

1ª Geração

Linguagem binária, linguagens máquina e Assembly.

2ª Geração

Utilizam compiladores (i.e. são baseadas em sistemas que lêem o programa numa destas

linguagens e "traduzem", ou compilam, para linguagem binária): COBOL, BASIC, FORTRAN ,

3ª Geração

Linguagens procedimentais e estruturadas: PASCAL, C

Page 7: Programação 1

7

4ª Geração

Geradores de programas (i.e. produzem programas noutras linguagens). Linguagens de

interrogação (p.ex. para bases de dados): SQL, JAVA, C++.

5ª Geração

Linguagens de especificação de problemas: LISP, PROLOG.

Evolução das linguagens

Para a execução de uma determinada tarefa o computador necessita de informação e esta tem de

ser fornecida que de uma forma clara e concreta. A linguagem nativas dos computadores é muito

limitada, a construção dessa linguagem é representada apenas por números binários formados a

partir de 0s e 1s, cada um destes dígitos é denominado por bit.

Os programas escritos através destas combinações de vocabulário binário são denominados

programas de linguagem máquina e considerados com do tipo de programação de baixo nível.

Estes programas escritos em linguagem máquina eram e são difíceis de escrever, ler e modificar

para os humanos.

Uma grande melhoria sobre a linguagem máquina foi o aparecimento da linguagem Assembly ou

linguagem de montagem. Esta linguagem usa palavras mnemónicas para representar instruções

originalmente escritas em linguagem máquina. A linguagem assembly permitiu a primeira

utilização de variáveis (posições de memória) controladas pelo programador.

A linguagem assembly é desconhecida para o computador que apenas conheces 0s e 1s, para tal os

programas escritos em linguagem assembly necessitam de um programa especial chamado

asssembler ou montador., este faz a tradução das instruções escritas em assembly para instruções

de linguagem máquina.

Embora tenha sido uma melhoria considerável para os programadores em relação á linguagem

máquina, a escrita de programas em linguagem assembly á bastante difícil e penosa, sendo

considerada ainda uma linguagem de baixo nível.

No início da era dos computadores, de meados da década de 40 até meados da década de 50 do

século XX, todos os programas de computador eram de baixo. A partir da década de 60,

começaram a surgir as chamadas linguagens de alto nível, estas introduziram melhoramentos

Page 8: Programação 1

8

consideráveis para os programadores, nomeadamente ao nível da linguagem, utilizando uma

linguagem mais próxima da linguagem humana. O grande avanço destas linguagens foi o facto de

elas permitirem aos programadores a especificação de instruções sem a preocupação sobre os

detalhes do computador sobre o qual o programa será executado. A grande maioria dos programas

actuais são escritos em linguagens de alto nível, mas por questões de eficiências alguns

programadores ainda utilizam a linguagem assembly.

Compiladores vs Interpretadores

Programas escritos em linguagens que não sejam linguagem máquina requerem tradução antes da

sua execução pelo computador. Como acima referido, a linguagem assembly necessita de um

tradutor chamado assembler que traduz programas escritos através de mnemónicas em linguagem

máquina, para cada instrução em assembly, existe uma única instrução em linguagem máquina

correspondente, nesse sentido, o assembler é o tipo de tradutor mais simples existente.

Nas linguagens de alto nível, uma instrução pode desencadear inúmeras instruções em linguagem

maquina, por esse facto essas linguagens requerem tradutores mais complexos. São dois os tipos

de tradutores a esse nível: compiladores e interpretadores.

Um compilador traduz programas escritos em linguagem de alto nível numa linguagem de baixo

nível e é também um programa. Um compilador não depende apenas da linguagem para a qual ele

foi programado, mas também do computador no qual vai ser compilado o código fonte.

Normalmente, um programa é escrito em partes separadas, e são compiladas autonomamente umas

das outras. Com o objectivo de reunir as varias partes de um programa de modo a formar um único

modulo executável, utiliza-se um programado chamado link editor. Este programa recebe como

entrada um conjunto de programas pré-compilados e faz as ligações entre eles. O resultado dessas

ligações é um programa integrado pronto a ser executado.

O outro tipo de tradutor é o interpretador. De modo diferente do compilador, um interpretador não

traduz um programa inteiro num equivalente em linguagem máquina. No seu lugar ele simula um

computador. Cada instrução do programa é traduzida á medida que o programa vai sendo

executado. Significa assim que as instruções que são executadas mais do que uma vez, são

também traduzidas o mesmo número de vezes, instruções não executadas não são traduzidas,

contrariamente ao compilador que traduz todas as instruções do programa uma única vez.

Page 9: Programação 1

9

Outra diferença importante entre compiladores e interpretadores é que, uma vez o programa

compilado, um programa torna-se independente do compilador, isto é, torna-se um programa

standalone, enquanto um programa interpretado depende sempre do interpretador para a sua

execução.

Normalmente os programadores não precisam de perceber como o interpretador traduz os

programas para a linguagem máquina durante a escrita do programa, mas obviamente que este

conhecimento é essencial na fase de debug do programa.

Resumidamente podemos concluir que:

COMPILADOR : Este programa faz a tradução do programa escrito numa linguagem compilada,

converte o codigo fonte (exemplo : Pascal, C, Visual Basic), traduzindo um ficheiro de texto num

ficheiro executável.

INTERPRETADOR : Ao executar um programa escrito numa linguagem interpretada (ex:

HTML), accionamos um outro programa que faz a tradução em tempo real, linha a linha. Este tipo

de programa é chamado de Interpretador (exemplos : Internet Explorer).

Page 10: Programação 1

10

Cronologia das linguagens de programação

FORTRAN (1957)

Foi desenvolvida por Backus para computadores IBM, destinou-se a aplicações científicas e deu

particular importância á eficiência das máquinas não tinha como foco a eficiência dos

programadores. É considerada como o antepassado de todas as linguagens científicas. O nome

Fortran deriva de “FORmula TRANslation”, no começo esta linguagem tinha a intenção de

traduzir equações científicas para códigos de computadores. A IBM desenvolveu a primeira versão

Page 11: Programação 1

11

de linguagem FORTRAN entre 1954 e 1957. O FORTRAN foi um programa verdadeiramente

revolucionário, antes dele todos os programas de computadores eram lentos, tendenciosos e

originavam muitos erros. Nos primeiros tempos, o programador podia escrever o algoritmo

desejado como uma série de equações algébricas padronizadas e o compilador FORTRAN podia

converter as declarações em linguagem de máquina que computador reconhecia e executava. A

linguagem FORTRAN original era bastante pequena em comparação com as versões modernas.

Esta contem apenas um número limitado de declarações tipo, só se podia trabalhar com o tipo

“integer” (inteiro) e “real” (real) e também não havia subrotinas. Quando se começou a usar este

programa regularmente verificou-se a existência de diversos erros. A IBM perante estes problemas

lançou o FORTRAN II em 1958. O desenvolvimento continuou em 1962, com o lançamento do

FORTRAN IV. FORTRAN IV tinha muitos melhoramentos e por isso tornou-se a versão mais

utilizada nos 15 anos seguintes. Em 1966 o FORTRAN IV foi adoptado como um padrão ANSI e

passou a ser conhecido como FORTRAN 66. A linguagem FORTRAN recebeu outra actualização

muito importante em 1977. O FORTRAN 77 incluía muitas novas características, que permitiram

escrever e guardar mais facilmente programas estruturados. O FORTRAN 77 introduziu novas

estruturas, como o bloco IF e foi a primeira versão de Fortran em que as variáveis “character”

(caracteres) eram realmente fáceis de manipular. Esta linguagem torna-se um pouco limitada em

termos de estruturas de informação e, também por só permitir a codificação de algumas figuras de

programação estruturada. O melhoramento seguinte foi importante e deu origem ao Fortran 90.

Este incluía todo o FORTRAN 77 como base e com mudanças significativas, mudanças nas

operações sobre tabelas (array); na parametrização das funções intrínsecas, permitindo assim

utilizar uma sequência de caracteres muito grande, como também usar mais do que dois tipos de

precisão para variáveis do tipo Real e Complex; houve um aperfeiçoamento da computação

numérica com a inclusão de um conjunto de funções numéricas, e no desenvolvimento de um

conjunto de funções e subrotinas que permitem quer aceder com maior facilidade a bibliotecas de

programas, quer auxiliar na definição de dados globais; na capacidade de escrever procedimentos

internos e recursivos, como também chamar os procedimentos através de argumentos, sendo estes,

opcionais ou obrigatórios; na implementação do conceito de apontadores. No conjunto, os novos

aspectos contidos no Fortran 90 fazem com que esta, seja considerada a linguagem mais eficiente

da nova geração de super computadores, e asseguram que o FORTRAN continuará a ser usado

com sucesso por muito tempo. Fortran 90 foi seguido por um pequeno melhoramento chamado

Fortran 95, em 1997. Este possui novas características para a linguagem. Também foram

clarificadas algumas das ambiguidades do Fortran 90. Mas o FORTRAN até hoje revelou

Page 12: Programação 1

12

superioridade em relação aos seus competidores, nas áreas de aplicações de engenharia e

científicas.

LISP (1959)

É uma linguagem de alto nível, criada por John McCarty em 1959, tendo em vista facilitar a

programação de sistemas de raciocínio baseados em lógica. Foi adoptada como linguagem

principal em investigação em Inteligência Artificial (1956). É uma das linguagens de alto nível

com menos restrições de sintaxe. O LISP foi originalmente desenhado para ser uma linguagem

interpretada, a interface consistia de um editor e um interpretador, tornavam o desenvolvimento de

programas de forma incremental mais simples, permitia testes a módulos separados, uma das

principais características era a maior velocidade de execução

ALGOL (1960)

A linguagem ALGOL-60 (Algorithmc Language) foi criada por um comité em 1960. Em muitos

aspectos, a linguagem ALGOL-60 provou ser revolucionária para a época. Entre estes aspectos

destacam-se a estrutura de blocos, declarações explícitas de variáveis, regras para variáveis locais,

rotinas recursivas numa linguagem imperativa (LISP já oferecia esta capacidade como linguagem

funcional ), expressões “if” encadeadas e tempos de vida dinâmicos para variáveis. ALGOL 60

não se tornou um sucesso em termo de vendas, entre as razões apontadas estão o interesse da IBM

em investir em seu FORTRAN e a falta de comandos de entrada e saída, pois a linguagem tinha

sido projectada com a intenção de ser independente da máquina. Uma forma nova de passagem de

parâmetros surgiu com o ALGOL-60: a passagem de parâmetros por nome (call-by-name).

COBOL (1960)

COBOL é uma linguagem de terceira geração, ou seja, uma linguagem criada para ser facilmente

interpretada pelo ser humano. O nome vem da abreviatura das palavras COmmon Business

Oriented Language, linguagem orientada a negócios. Em 1959 foi formado um comité no

pentágono (Estados Unidos da América) para a criação das directrizes de uma nova linguagem de

programação virada para negócios, esse comité era formato por pessoas da IBM, RCA e Sylvania

Eletric Products. No final do ano de 1959 terminaram as especificações sobre o COBOL, baseado

nas linguagens FLOW-MATIC e COMTRAN. As directrizes foram aprovadas pelo pentágono e

em 1960 foi lançado o COBOL 60.

Page 13: Programação 1

13

O COBOL demorou apenas seis meses a ficar pronto e até os dias de hoje é fortemente utilizado.

As aplicações actualmente desenvolvidas em COBOL correm em plataformas MAINFRAME

IBM z/OS. A velocidade de processamento do COBOL nessa plataforma, aliada com a base de

dados DB2 é impressionante, são capazes de processar milhões de transacções num espaço de

tempo muito curto. As instituições públicas, financeiras e grandes empresas privadas possuem a

grande parte dos seus sistemas de processamento de dados desenvolvidos em COBOL.

Actualmente através de outras linguagens de programação estão a ser criadas interfaces de

interacção com os utilizadores, mas todo processamento de dados é realizado por programas

COBOL, por exemplo: no acesso através da internet aos sites dos principais bancos ou através do

multibanco, as interfaces são desenvolvidas em PHP, JSP, Java, C e outras, essas interfaces apenas

exibem os dados, todo o processamento pesado é realizado por programas em COBOL.

O COBOL não parou no tempo, durante os 47 anos desde sua criação ele evoluiu, hoje existe o

COBOL padrão 2002 que suporta o paradigma de programação orientada a objectos e diversas

outras características das linguagens de programação modernas.

BASIC (1964)

BASIC (acrónimo para Beginners All-purpose Symbolic Instruction Code), foi uma linguagem de

programação criada com fins didácticos, pelos professores John George Kemeny e Thomas

Eugene Kurtz em 1964 no Dartmouth College.

A finalidade do BASIC era apenas didáctica mas por alguns anos foi utilizada como principal

linguagem de programação da maioria dos primeiros computadores pessoais e foi a base para

muitas das linguagens utilizadas na actualidade, algumas mantiveram o acrónimo e outras apenas

conservaram parte da estrutura do BASIC acrescentando mais código.

A linguagem BASIC é construída a partir de palavras de utilização corrente (em inglês) para

atribuição de valores a variáveis e comandos, dispostos em linhas numeradas que são interpretados

por um compilador em tempo de execução e que processa cada comando sequencialmente.

Hoje em dia praticamente não se utiliza a linguagem BASIC em nenhum computador, ela foi

substituída por linguagens estruturadas e orientadas a objectos e hoje praticamente tudo é

efectuado através do rato, cujos comandos são interpretados por milhares de bibliotecas em

linguagens proprietárias, incorporadas nos sistemas operativos.

Page 14: Programação 1

14

No entanto linguagens como FLASH, JAVA, DELPHI e outras, tem alguma similaridade com o

BASIC e guardam algumas das particularidades do BASIC original, só que estas linguagens

exigem um tempo de aprendizado mais prolongado, devido à quantidade e complexidade de

alguns comandos.

PASCAL (1971)

Em 1971 o professor Niklaus Wirth criou uma linguagem de programação no âmbito de um

trabalho académico para alunos de programação da Universidade Técnica de Zurique, Suíça. A

essa linguagem chamou Pascal, homenageando o filósofo e matemático do século XVII, Blaise

Pascal. A partir dessa época, diversas versões de Pascal foram implementadas, com destaque

especial a Borland / Inprise, que construiu os melhores e mais populares compiladores Pascal.

Desde a sua primeira versão, o compilador Pascal da Borland (chamado de Turbo Pascal) já

possuía ambiente para edição e debug do código fonte, fazia a compilação e link edição do código

num único processo. Outra característica dos compiladores Turbo Pascal: são extremamente

rápidos e geram executáveis limpos com código nativo. O Pascal tornou-se desde então a

linguagem preferida nos meios académicos para a aprendizagem da lógica de programação

estruturada e ainda hoje para tal fim é utilizada.

C (1972)

Desenvolvida nos laboratórios Bell na década de 70, a partir da Linguagem B (criada no final dos

anos 60 por Ken Thompson), que foi reformulada por Brian Kernighan e Dennis M. Ritchie e

posteriormente renomeada para C.

Podendo ser considerada como uma linguagem de nível médio, possui instruções que a tornam ora

uma linguagem de alto nível e estruturada como o Pascal, ora numa linguagem de baixo nível pois

possui instruções muito próximas da máquina, que só o Assembler possui.

De facto com a linguagem C podemos construir programas organizados e concisos ocupando

pouco espaço de memória com alta velocidade de execução. Infelizmente, dada toda a

Page 15: Programação 1

15

flexibilidade da linguagem, também podemos escrever programas desorganizados e difíceis de

serem compreendidos (como usualmente são os programas em BASIC).

A linguagem C foi desenvolvida a partir da necessidade de se escrever programas que utilizassem

recursos próprios da linguagem de máquina de forma mais simples e portável que o assembler.

São inúmeras razões para a escolha da linguagem C como a predilecta para os programadores

"profissionais". As seguintes características da Linguagem C servem para mostrar o porquê de sua

ampla utilização:

Portabilidade entre máquinas e sistemas operacionais.

Dados compostos em forma estruturada.

Programas Estruturados.

Total interacção com o Sistema Operacional.

o Código compacto e rápido, quando comparado ao código de outras linguagens de

complexidade análoga.

Actualmente, C é uma das linguagens mais utilizadas pelos programadores, por permitir, dadas

suas características, a escrita de programas típicos do Assembler, BASIC, COBOL e Clipper, e de

sistemas Operativos como o UNIX

PROLOG (1972)

Criada por Comerauer e Roussel, na Universidade de Aix-Marseille com o auxílio de Kowalski,

da Universidade de Edinburgo. É uma linguagem de programação lógica isto é, o problema é

descrito em função de afirmações e de regras sobre os objectos e cabe ao Interpretador ou ao

Compilador encontrar os processos para resolução dos problemas

É bastante utilizada em Inteligência Artificial.

SMALLTALK (1972)

Criada por Alan Key e Adele Goldberg no Xerox PARC Surgiu com a primeira linguagem de

programação totalmente orientada a objetos. O ambiente de programação introduziu o conceito de

interfaces gráficas com o utlizador hoje amplamente utilizado.

Page 16: Programação 1

16

ADA (1983)

Criada pela empresa Cii-Honeywell Bull, liderada pelo francês Jean Ichbiah, para o DoD para dar

resposta á procura de uma linguagem de programação de alto nível padronizada. Necessitou de

um esforço enorme para o seu desenvolvimento, envolveu centenas de pessoas durante 8 anos. É

uma linguagem muito grande e complexa. Apropriada para programação concorrente e sistemas de

tempo real.

C++ (1985)

O C++ foi desenvolvido por Bjarne Stroustrup no início da década de 80 nos AT&T Labs.

Inicialmente o C++ foi designado por “C with classes”. O nome C++ foi dado por Rick Mascitti

no Verão de 1983. A linguagem não é chamada D porque se trata de uma extensão da linguagem

C e não de uma nova linguagem que tenta remediar os defeitos da sua antecessora eliminando-lhe

características. O C++ foi instalado pela primeira vez fora do laboratório onde foi desenvolvido

em Julho de 1983, tendo surgido comercialmente pela primeira vez em 1985.

O C++ tem como principal objectivo manter-se simultaneamente próximo da máquina e próximo

(da análise) do problema. Sendo uma linguagem que suporta programação orientada por objectos,

o C++ pretende ser adequado à organização e desenvolvimento de programas de grande dimensão.

A diferença conceptual entre o C++ e o C está na ênfase com que são tratados os tipos de dados e

a organização dos programas.

O Stroustrup diz ter pensado o C++ para:

1) Proporcionar um melhor C;

2) Suportar abstracção de dados;

3) Suportar Programação Orientada por Objectos. Isto é feito sem perda nem de

generalidade nem de eficiência comparativamente ao C. Ao contrário de certas linguagens

como o Smalltalk ou o Lisp, o C++ não impõe nenhum tipo de programação.

Suporta programação orientada por objectos (Classes e Objectos, Herança,

Binding dinâmico, polimorfismo), tipos de dados abstractos (classes, encapsulamento),

funções e classes parametrizadas ou genéricas (templates), disponibiliza operadores para

alocação e libertação de dinâmica de memória de alto nível (new, delete), permite a

passagem de argumentos por referência.

Page 17: Programação 1

17

Praticamente todas as instruções e expressões em C são válidas em C++, sem alteração de

significado

JAVA (1995)

Java nasce e dá seus primeiros passos em 1991 resultado de um projecto de desenvolvimento de

suporte software para electrónica de consumo (electrodomésticos), realizado por uma equipa da

empresa SUN chamada de Green Team. Este primeiro projecto dá à Java uma das suas mais

interessantes características: A portabilidade, visto que Java tinha que funcionar em numerosos

tipos de CPUs, e portanto foi pensada para ser independente da plataforma sobre a qual funciona.

Esta característica foi muito possivelmente o que permitiu a Java converter-se actualmente na

linguagem por excelência para a criação de aplicações em Internet.

Este salto para converter-se numa linguagem de programação para computadores acontece

definitivamente em 1995 quando sai a versão 2 do browser WEB “Netscape”, foi incluído um

interpretador específico para JAVA, produzindo deste modo uma autêntica revolução na Internet.

Com um novo foco e resultado do crescimento da Internet o Java continua a crescer a uma

velocidade estonteante e lança sua versão 1.1 em 1997, com muitas melhorias e adaptações, fruto

de uma revisão substancial da linguagem. O Java 1.2 aparece no fim de 1998 e mais tarde é

rebaptizado para Java 2.

A Sun descreve o Java 2 como "simples, orientado a objectos, distribuído, interpretado, robusto,

seguro, de arquitectura neutra, portátil, de altas prestações, multi-funções e dinâmico". O Java

apresenta muitas características que o diferenciam das linguagens similares como C++,

começando pelas possibilidades de execução.

Basicamente um programa em Java pode ser executado como:

* Stand Alone: Aplicação independente.

* Applet: Uma aplicação especial que é executada no browser web cliente.

* Servlet: Uma aplicação especial sem Interface que é executada no servidor.

Por outro lado um programa desenvolvido em Java nunca começa do zero. Java implementa

consigo um grande número de classes, incluídas gratuitamente no ambiente de desenvolvimento,

Page 18: Programação 1

18

para realizar variadas tarefas que permitem ao programador centrar-se nas características mais

inerentes ao projecto em desenvolvimento.

A Sun distribui gratuitamente na sua página web, a Framework de desenvolvimento Java chamada

indistintamente com as siglas: JDK, SDK ou J2SE. Estes pacotes incluem as classes incluídas já

em Java, ou seja a API de Java. Também inclui o compilador de Java e o que permite a Java

funcionar em qualquer computador e sistema operativo: o JRE (Java Runtime Enviroment).

Instala a Máquina Virtual de Java e os plugins necessários para browsers instalados no sistema

reconhecerem e executarem os programas. A Máquina Virtual de Java permite que um programa

compilado com Java que não tem código compreensível por nenhum processador possa ser

compreendido pelo processador sobre o qual funciona. A única dependência do Hardware é a

máquina virtual, tem de conhecer o que tem por baixo para realizar a tradução, porém os

programas em Java podem funcionar sobre uma máquina virtual independentemente de onde

estiver instalada.

Conclusão

A escolha de um determinado tipo de linguagem está obviamente dependente do tipo de projecto e

da sua complexidade. Actualmente, com a evolução do hardware, a rapidez de processamento e a

capacidade de armazenamento é enorme e cada vez mais acessivel em termos financeiros. Essa

disponibilidade permite que as linguagens seja hoje cada vez mais proximas ao humano, o

programador tem ao seu dispor actualmente enumeros editores graficos que lhe permitem resolver

situações escrevendo muito poucas linhas de codigo. Essa facilidade permite responder

necessidade cada vez maior de desenvolver programas o mais rapido possivel e de forma mais

confiável.

Actualmente para novas aplicações e projectos a desenvolver o paradigma da linguagem orientada

a objectos é aquele que vigora, JAVA, PHP, MySQL e muitos outros, muito pela sua

disponibilidade como OpenSource. A WEB permitiu a evolução deste paradigma, não se resumido

apenas a ela.

Page 19: Programação 1

19

A escolha de uma linguagem de programação depende essencialmente do projecto a implementar,

o seu grau de complexidade e especifidade ditam o veredicto sobre qual utilizar e na maioria dos

caso são utilizadas varias linguagens e integradas por outras linguagens.

BIBLIOGRAFIA

Introdução à Programação em Java - António Adrego da Rocha / Osvaldo Manuel da Rocha Pacheco

Introdução à Programação usando C - António Manuel Adrego da Rocha, Editora FCA, 2006.

Introdução à Programação - Jorge Manuel Simões e Mário António Santos

Sites na Internet:

http://www.eq.uc.pt/~batateu3/introd.html

http://allbert.com.br

www.lisp.org

http://www-usr.inf.ufsm.br

http://www.global.estgp.pt

http://repositorium.sdum.uminho.pt

http://w3.ualg.pt