O documento fornece um resumo sobre as linguagens de programação, discutindo os tipos de linguagens (de baixo e alto nível), paradigmas (imperativo, orientado a objetos, lógico), evolução das linguagens, e compiladores vs interpretadores.
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