SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
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
Í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




                                                                                                                                                                   2
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



                                                                                             3
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




                                                                                              4
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).




                                                                                                 5
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



                                                                                               6
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


                                                                                              7
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.

                                                                                               8
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).




                                                                                              9
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


                                                                                            10
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


                                                                                             11
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.


                                                                                                  12
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.



                                                                                               13
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



                                                                                             14
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.




                                                                                              15
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.




                                                                                             16
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,




                                                                                             17
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.




                                                                                           18
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




                                                                                               19

Mais conteúdo relacionado

Mais procurados

Apresentação java
Apresentação javaApresentação java
Apresentação javamunosai
 
Caricatura: Você no Desenho
Caricatura: Você no DesenhoCaricatura: Você no Desenho
Caricatura: Você no DesenhoRodTramonte
 
Análise da forma na arquitetura
Análise da forma na arquiteturaAnálise da forma na arquitetura
Análise da forma na arquiteturaViviane Marques
 
CAP 3. Cinema e o registro do movimento 2021.pptx
CAP 3. Cinema e o registro do movimento 2021.pptxCAP 3. Cinema e o registro do movimento 2021.pptx
CAP 3. Cinema e o registro do movimento 2021.pptxTATE9
 
Ficha nº 6 estudo dos arcos
Ficha nº 6 estudo dos arcosFicha nº 6 estudo dos arcos
Ficha nº 6 estudo dos arcosruiseixas
 
Projeto 21. Aula 01: 1. Design, A Palavra; 2. O Conceito; 3. A Historia; 4. D...
Projeto 21. Aula 01: 1. Design, A Palavra; 2. O Conceito; 3. A Historia; 4. D...Projeto 21. Aula 01: 1. Design, A Palavra; 2. O Conceito; 3. A Historia; 4. D...
Projeto 21. Aula 01: 1. Design, A Palavra; 2. O Conceito; 3. A Historia; 4. D...Francisco Gómez Castro
 
Sistemas Multimídia - Aula 03 - O que é Multimídia (Evolução da comunicação e...
Sistemas Multimídia - Aula 03 - O que é Multimídia (Evolução da comunicação e...Sistemas Multimídia - Aula 03 - O que é Multimídia (Evolução da comunicação e...
Sistemas Multimídia - Aula 03 - O que é Multimídia (Evolução da comunicação e...Leinylson Fontinele
 
02 Fotografia Digital - Historia da fotografia
02 Fotografia Digital - Historia da fotografia02 Fotografia Digital - Historia da fotografia
02 Fotografia Digital - Historia da fotografiaPaulo Neves
 
03 os caminhos da arquitetura contemporânea
03 os caminhos da arquitetura contemporânea03 os caminhos da arquitetura contemporânea
03 os caminhos da arquitetura contemporâneaVítor Santos
 
Teoria do design aula 01 [conceitos basicos]
Teoria do design aula 01 [conceitos basicos]Teoria do design aula 01 [conceitos basicos]
Teoria do design aula 01 [conceitos basicos]Léo Dias
 

Mais procurados (20)

Luz e sombra
Luz e sombraLuz e sombra
Luz e sombra
 
Projecção
ProjecçãoProjecção
Projecção
 
Arte e tecnologia
Arte e tecnologiaArte e tecnologia
Arte e tecnologia
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
Caricatura: Você no Desenho
Caricatura: Você no DesenhoCaricatura: Você no Desenho
Caricatura: Você no Desenho
 
Aula 01 desenho de observação
Aula 01 desenho de observaçãoAula 01 desenho de observação
Aula 01 desenho de observação
 
Ponto e linha
Ponto e linhaPonto e linha
Ponto e linha
 
Aula: Modernismo
Aula: ModernismoAula: Modernismo
Aula: Modernismo
 
Análise da forma na arquitetura
Análise da forma na arquiteturaAnálise da forma na arquitetura
Análise da forma na arquitetura
 
CAP 3. Cinema e o registro do movimento 2021.pptx
CAP 3. Cinema e o registro do movimento 2021.pptxCAP 3. Cinema e o registro do movimento 2021.pptx
CAP 3. Cinema e o registro do movimento 2021.pptx
 
Ficha nº 6 estudo dos arcos
Ficha nº 6 estudo dos arcosFicha nº 6 estudo dos arcos
Ficha nº 6 estudo dos arcos
 
Projeto 21. Aula 01: 1. Design, A Palavra; 2. O Conceito; 3. A Historia; 4. D...
Projeto 21. Aula 01: 1. Design, A Palavra; 2. O Conceito; 3. A Historia; 4. D...Projeto 21. Aula 01: 1. Design, A Palavra; 2. O Conceito; 3. A Historia; 4. D...
Projeto 21. Aula 01: 1. Design, A Palavra; 2. O Conceito; 3. A Historia; 4. D...
 
Sistemas Multimídia - Aula 03 - O que é Multimídia (Evolução da comunicação e...
Sistemas Multimídia - Aula 03 - O que é Multimídia (Evolução da comunicação e...Sistemas Multimídia - Aula 03 - O que é Multimídia (Evolução da comunicação e...
Sistemas Multimídia - Aula 03 - O que é Multimídia (Evolução da comunicação e...
 
02 Fotografia Digital - Historia da fotografia
02 Fotografia Digital - Historia da fotografia02 Fotografia Digital - Historia da fotografia
02 Fotografia Digital - Historia da fotografia
 
03 os caminhos da arquitetura contemporânea
03 os caminhos da arquitetura contemporânea03 os caminhos da arquitetura contemporânea
03 os caminhos da arquitetura contemporânea
 
Elementos Básicos da Linguagem Visual. Prof. Garcia Junior
Elementos Básicos da Linguagem Visual. Prof. Garcia JuniorElementos Básicos da Linguagem Visual. Prof. Garcia Junior
Elementos Básicos da Linguagem Visual. Prof. Garcia Junior
 
Teoria do design aula 01 [conceitos basicos]
Teoria do design aula 01 [conceitos basicos]Teoria do design aula 01 [conceitos basicos]
Teoria do design aula 01 [conceitos basicos]
 
Projeto grafico II | Aula 01
Projeto grafico II | Aula 01Projeto grafico II | Aula 01
Projeto grafico II | Aula 01
 
Como analisar obras de arte
Como analisar obras de arteComo analisar obras de arte
Como analisar obras de arte
 
Ppt desenho-tecnico 2014
Ppt desenho-tecnico 2014Ppt desenho-tecnico 2014
Ppt desenho-tecnico 2014
 

Destaque

Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativoTony Alexander Hild
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informáticasocrahn
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Robson Ferreira
 

Destaque (8)

Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informática
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1
 

Semelhante a Programação 1

linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.pptJadna Almeida
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay Fran Pires
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Algoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
Algoritmos e Logica de programação - #Aula 06 - Linguagens De ProgramaçãoAlgoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
Algoritmos e Logica de programação - #Aula 06 - Linguagens De ProgramaçãoErick L. F.
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programaçãoAlbertoVach
 
Introdução a linguagem java
Introdução a linguagem javaIntrodução a linguagem java
Introdução a linguagem javaRosicleia Frasson
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoAdriano Teixeira de Souza
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de ProgramaçãoBeDMK
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoInstituto CENTEC
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdfAPlima
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem pythonBruno Maspoli
 

Semelhante a Programação 1 (20)

Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.ppt
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Algoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
Algoritmos e Logica de programação - #Aula 06 - Linguagens De ProgramaçãoAlgoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
Algoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
 
Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
Introdução a linguagem java
Introdução a linguagem javaIntrodução a linguagem java
Introdução a linguagem java
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - Introdução
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de Programação
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdf
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
 

Mais de essa

Ubuntu versão final
Ubuntu versão finalUbuntu versão final
Ubuntu versão finalessa
 
Si trabalho
Si trabalhoSi trabalho
Si trabalhoessa
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programaçãoessa
 
Espaço shengen (questão integradora cp1)
Espaço shengen (questão integradora cp1)Espaço shengen (questão integradora cp1)
Espaço shengen (questão integradora cp1)essa
 
Configuração de um router trabalho rlw
Configuração de um router trabalho rlwConfiguração de um router trabalho rlw
Configuração de um router trabalho rlwessa
 
Ubuntu
UbuntuUbuntu
Ubuntuessa
 
Windows seven 08-04-10(1)
Windows seven   08-04-10(1)Windows seven   08-04-10(1)
Windows seven 08-04-10(1)essa
 
Questao integradora nova
Questao integradora novaQuestao integradora nova
Questao integradora novaessa
 
Questao integradora nova[1]
Questao integradora nova[1]Questao integradora nova[1]
Questao integradora nova[1]essa
 
Questao integradora cidadania europeia cp1
Questao integradora cidadania europeia cp1Questao integradora cidadania europeia cp1
Questao integradora cidadania europeia cp1essa
 
2º trabalho de base dados
2º trabalho de base dados2º trabalho de base dados
2º trabalho de base dadosessa
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dadosessa
 
Intel core i3,i5,i7
Intel core i3,i5,i7Intel core i3,i5,i7
Intel core i3,i5,i7essa
 

Mais de essa (13)

Ubuntu versão final
Ubuntu versão finalUbuntu versão final
Ubuntu versão final
 
Si trabalho
Si trabalhoSi trabalho
Si trabalho
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Espaço shengen (questão integradora cp1)
Espaço shengen (questão integradora cp1)Espaço shengen (questão integradora cp1)
Espaço shengen (questão integradora cp1)
 
Configuração de um router trabalho rlw
Configuração de um router trabalho rlwConfiguração de um router trabalho rlw
Configuração de um router trabalho rlw
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Windows seven 08-04-10(1)
Windows seven   08-04-10(1)Windows seven   08-04-10(1)
Windows seven 08-04-10(1)
 
Questao integradora nova
Questao integradora novaQuestao integradora nova
Questao integradora nova
 
Questao integradora nova[1]
Questao integradora nova[1]Questao integradora nova[1]
Questao integradora nova[1]
 
Questao integradora cidadania europeia cp1
Questao integradora cidadania europeia cp1Questao integradora cidadania europeia cp1
Questao integradora cidadania europeia cp1
 
2º trabalho de base dados
2º trabalho de base dados2º trabalho de base dados
2º trabalho de base dados
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dados
 
Intel core i3,i5,i7
Intel core i3,i5,i7Intel core i3,i5,i7
Intel core i3,i5,i7
 

Programação 1

  • 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
  • 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 2
  • 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 3
  • 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 4
  • 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). 5
  • 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 6
  • 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 7
  • 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. 8
  • 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). 9
  • 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 10
  • 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 11
  • 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. 12
  • 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. 13
  • 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 14
  • 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. 15
  • 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. 16
  • 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, 17
  • 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. 18
  • 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 19