Você está na página 1de 16

Histria das Linguagens de Programao

Docente: Prof. Doutor Antnio M. Soares Aguiar Discentes: N 20111469 - Pedro Cardoso N 20111541 - Rui Silva N 20111550 - Diogo Gonalves 1 Semestre 2011/2012 FTIC - Fundamentos de Tecnologias da Informao e Comunicao

Outubro/2011

ndice
I - Sumrio ........................................................................................................................ 3 II - Introduo ................................................................................................................... 3 III - A evoluo das linguagens de programao ............................................................. 6 IV - Consideraes finais ............................................................................................... 14 V Bibliografia .............................................................................................................. 15

I - Sumrio
Este trabalho tem como objectivo dar informao suficiente para que no final do mesmo se consiga ter uma viso abrangente sobre os factores que estiveram na base do aparecimento das linguagens de programao bem como a sua evoluo ao longo dos tempos.

II - Introduo
Com o aparecimento dos primeiros sistemas mecanizados comeou a haver a percepo de alguns iluminados de que se houvesse uma forma de transmitir mquina uma serie de instrues que replicassem a realidade feita atravs de processos manuais, iria haver um ganho de produtividade gigantesco e que o elemento erro humano seria removido do processo. Ao surgirem os primeiros computadores houve desde logo a necessidade de se encontrar uma forma de transmitir instrues que deveriam ser interpretadas pela mquina. Um conjunto de regras sintcticas e semnticas que permitissem definir um conjunto de processos e procedimentos de serem interpretados pela mquina da forma mais eficiente, o que antes era suprfluo e que facilmente se ultrapassava com a operao dos equipamentos por trabalhadores agora era incontornvel, ou se conseguia comunicar e instruir os computadores a efectuarem as tarefas exigidas ou os mesmos no tinham razo para existir. Surgem assim as linguagens de programao em sistemas informticos que so um conjunto de palavras compostas segundo essas regras, e permitem que um programador indique exactamente que dados vo ser processados e que regras se devem aplicar nesses processos.

Iremos mostrar alguns dos exemplos mais emblemticos do muito que tem surgido no desenvolvimento de novas ferramentas para se conseguir transmitir s maquinas a forma de executar processos da forma mais eficaz de com o menor numero de erros. 3

As linguagens de programao tem evoludo no sentido de serem cada vez mais intuitivas quer na forma como os programadores elaboram o cdigo querem na optimizao da interpretao das mesmas, no esquecendo o interface com o utilizador final que tendencialmente tem ficado mais apelativo sendo um dos grandes factores para a adeso macia s novas tecnologias.

Linguagem de programao um dos vrios tipos existentes como a natural e a gestual, sendo que de uma forma simplista linguagem o mecanismo pelo qual duas ou mais entidades transmitem ideias entre si, linguagem de programao e a forma como so transmitidos comandos para executar tarefas de uma forma organizada e lgica. Existem cinco geraes de linguagens de programao estando definidas da seguinte forma: 1GL As linguagens de primeira-gerao os comandos so dados directamente ao processador em 1s e 0s, so as mais rpidas a serrem processadas mas impraticveis para o normal dos programadores, so linguagens de baixo-nivel. 2GL - Nas linguagens de segunda-gerao so onde aparecem nesta escala os primeiros programadores e so conhecidas como assembler, neste nvel j existem mnemnicas, um comando que neste nvel assemelha-se a algo como: ADD 12,8 Um assembler converte estas mnemnicas em linguagem maquina para posterior processamento. 3GL Aqui entramos nas linguagens de alto nivel en que j existem estruturas lgicas e comandos entendveis ao ser humano, nestas inclusse o PL/I, o C ou o Java, um comando de java tem esta apresentao: public boolean handleEvent (Event evt) { switch (evt.id) { case Event.ACTION_EVENT: { if ("Try me" .equald(evt.arg)) { Um compilador converte estas instrues para linguagem maquina. programming knowledge. 4GL Neste nivel a linguagem de programao ja se aproxima da linguagem natural sendo depois convertidas atraves de um compilador para linguagem maquina, como exempro: EXTRACT ALL CLIENTES WHERE "COMPRA ANTERIOR" TOTAL MORE THAN 1000

5GL A ultima gerao distingue-se pelo uso de ferramentas de programao de interface grfico para criao do cdigo que depois normalmente compilado com um compilador de3GL ou 4GL. (http://searchcio-midmarket.techtarget.com/definition/programming-languagegenerations, visto em 28/10/2011)

Esta evoluo qualitativa tem ajudado a indstria do hardware, do software e a de investigao de TIC a progredirem sendo um processo em ciclo fechado e recproco entre todos os elementos.

III - A evoluo das linguagens de programao

A evoluo das linguagens de programao tema de debate e existem muitas correntes com incios e percursos diferentes, os dados que iremos transmitir no iram tomar partido por nenhuma delas dando o conhecimento e a viso mais abrangente para que cada um decida por si mesmo.

Tudo teve inicio na era sem computadores, nessa poca as linguagens resumiam-se apenas a cdigos. Cdigos esses que teriam de ser descodificados de modo a existir uma melhor percepo da sua existncia e contedo.

Desta forma, como cronologia dos acontecimentos, temos: 1800-1900

Em 1801, o tear de Jacquard usava furos em cartes perfurados para representar os movimentos do brao do tear ao realizar costuras, com o objectivo de gerar padres decorativos automaticamente.

Em 1842, Ada Lovelace anexou uma srie de anotaes mquina analtica de Charles Babbage que especificavam em completo detalhe um mtodo para calcular nmeros de Bernoulli. Este

feito foi reconhecido por alguns historiadores como o primeiro programa de computador do mundo. Em 1890, Herman Holleirith, ao perceber que poderia codificar a informao em cartes perfurados, como se faz nos bilhetes de comboio, decidiu implementar essa codificao aos dados dos censos, do ano em vigor. Mesmo identificando estas linguagens de programao, na era moderna muito difcil indicar qual foi a primeira linguagem a ser descoberta/definida.

1900-2000 Na dcada de 40, foram criados os primeiros computadores elctrico, sendo uma inovao para a poca em questo.

Com este aparecimento, a velocidade limitada e a pequena capacidade de armazenamento obrigavam os programadores a trabalharem em linguagem maquina. Este tipo de desenvolvimento tinha graves problemas de esforo intelectual e estava muito sujeito a erros, os quais s podiam ser verificados quando passados para produo, nesta poca o termo maquina de testes era proibida derivado aos elevados custos dos equipamentos A construo deste computador, foi o ponto de partida para o desenvolvimento de novas linguagens de programao, entre elas:

1943 - ENIAC coding system 1945 - Plankalkl (Konrad Zuse) 7

1949 - C-10

(http://grupologica.forumslog.com/t86-a-historia-cronologica-das-linguagens-deprogramacao, no dia 29/10/2011; http://en.wikipedia.org/wiki/History_of_programming_languages, no dia ...) Iniciada a dcada de 50, foram desenvolvidas trs novas linguagens de programao, que influenciam de certa forma algumas linguagens dos dias de hoje, sendo estas: FORTRAN (1955) inventada por John Backus ; LISP, inventada por John Mccarthy; COBOL, criada pelo Short Range Comittee tendo uma grande influncia de Grace Hopper.

(http://grupologica.forumslog.com/t86-a-historia-cronologica-daslinguagens-de-programacao, no dia 29/10/2011; http://en.wikipedia.org/wiki/History_of_programming_languages, no dia ...)

Outro acontecimento importante nesta dcada foi a criao de uma nova linguagem para os algoritmos a ALGOL 60, atravs de uma publicao de um relatrio, tendo este consolidado muitas ideias que existiam na poca, apresentando tambm duas inovaes neste mbito:

Estrutura de blocos aninhados: pedaos significativos de cdigo poderiam ser agrupados em bloco de instrues, sem ter que ser transformados em procedimentos separados e ser explicitamente chamados;

Escopo lxico: um bloco podia ter suas prprias variveis no acessveis fora do bloco, e muito menos manipulveis de fora do bloco.

A linguagem ALGOL60 foi particularmente influente na concepo das linguagens posteriores, algumas das quais tornaram-se mais populares.

Algumas ideias-chave da linguagem Algol foram continuamente utilizadas, produzindose a linguagem ALGOL 68:

A sintaxe e semntica tornaram-se ainda mais ortogonais, ou seja, tornaram-se uma excepo s regras, com rotinas annimas, um sistema digitao com funes de ordem superior, etc;

No foi apenas a parte livre de contexto da linguagem, mas a sintaxe da linguagem completa e a semntica tambm foram definidos formalmente, em termos da gramtica de Van Wijngaarden, um formalismo desenvolvido especificamente para esta finalidade.

Devido complexidade e a certos recursos pouco utilizados do ALGOL68, fez com que a linguagem torna-se pouco popular, ganhando desta forma a reputao de ser uma linguagem difcil. O que fez com que Niklaus Wirth sai-se do Comit, dedicando-se desta forma criao de uma nova linguagem, de nome: PASCAL. Como cronologia referente s duas dcadas (50 e 60), temos: 1951 - Regional Assembly Language 1952 - Autocode 1954 - FORTRAN 1955 - FLOW-MATIC (antecessor do COBOL) 1957 - COMTRAN (antecessor do COBOL) 1958 - LISP 1958 - ALGOL 58 1959 FACT (antecessor do COBOL) 1959 - COBOL 1962 - APL 1962 - Simula 9

1964 - BASIC 1964 - PL/I

Pode-se dizer que foi entre o final da dcada de 60 e a de 70, que surgiram maior parte das linguagens de programao em utilizao nos dias de hoje. Simula, linguagem inventada nos anos 60 por Nygaard e Dahl, com um conjunto de Algol60, foi a primeira linguagem a suportar o conceito de classes; C, uma das primeiras linguagens de programao de sistemas, foi desenvolvido por Dennis Ritchie e Ken Thompson nos laboratrios da Bell entre 1969 e 1973. Smalltalk, (meados de 1970) forneceu uma base completa para o projecto de uma linguagem orientada a objectos. Prolog, projectada em 1972 por Colmerauer, Roussel, e Kowalski, foi a primeira linguagem de programao do paradigma lgico. ML, construi um sistema polimrfico com base em LISP, (inventada por Robin Milner em 1973), sendo uma linguagem de programao funcional pioneira na digitao esttica.

(http://grupologica.forumslog.com/t86-a-historia-cronologica-daslinguagens-de-programacao, no dia 29/10/2011; http://en.wikipedia.org/wiki/History_of_programming_languages, no dia ...)

Foi durante estas duas dcadas, que surgiu um debate considervel, sobre os mritos da "programao estruturada", que entre outros aspectos, envolvia a programao sem o uso de Goto.

10

Este debate foi delineado com o objectivo de estruturar as linguagens. Pois algumas linguagens no incluam o comando GOTO, o que obrigou os programadores a utilizar a programao estruturada.

Aps este debate, surgiram novas linguagens, entre elas: 1968 - Logo 1969 - B (variante do C) 1970 - Pascal 1970 - Forth 1973 - C 1972 - Smalltalk 1972 - Prolog 1973 - ML 1975 - Scheme 1978 - SQL (inicialmente era apenas uma linguagem de consulta, mais tarde foi ampliada para estruturas de programao)

(http://grupologica.forumslog.com/t86-a-historia-cronologica-das-

linguagens-de-programacao, visto no dia 29/10/2011; http://en.wikipedia.org/wiki/History_of_programming_languages, visto no dia ...)

Chegando dcada de 80, deparamo-nos com uma poca de consolidao. A linguagem C++ combinou a orientao a objectos com a programao de sistemas; a linguagem Ada foi padronizada, dando origem a uma linguagem de programao de sistemas destinados utilizao por parte dos contratantes de defesa; grandes investimentos foram feitos, principalmente no sentido de melhorar linguagens j existentes, ao contrrio de inventarem novas. Tendo como exemplo a padronizao das linguagens ML e Lisp.

11

Contudo, foi nesta poca que surgiu uma nova tendncia na concepo de linguagens, surgindo um aumento do foco na programao de sistemas de larga escala com o uso de mdulos, ou em unidades organizacionais de cdigo de larga-escala.

Foi tambm nesta poca, que o movimento RISC (Reduced Instruction Set Computer) sugeriu que o Hardware fosse concebido para os compiladores j existentes, e deixa-se de ser baseado em linguagem Assembly, o que fez despertar um maior interesse na tecnologia de compilao de alto nvel. Durante este perodo, foram desenvolvidas as seguintes linguagens: 1980 - C++ (as C with classes, name changed in July 1983) 1983 - Objective-C 1983 - Ada 1984 - Common Lisp 1985 - Eiffel 1986 - Erlang 1987 - Perl 1988 - Tcl 1988 - Mathematica 1989 - FL (Backus)

(http://grupologica.forumslog.com/t86-a-historia-cronologica-das-linguagens-deprogramacao, visto no dia 29/10/2011; http://en.wikipedia.org/wiki/History_of_programming_languages, visto no dia ...)

Na dcada de 1990 no se viu nenhuma novidade fundamental, grande parte dos programas eram descendentes de outros previamente desenvolvidos, sendo todas destas linguagens orientadas a objectos. Das poucas que no tiveram influncia directa de programas previamente desenvolvidos estavam entre elas a Object Pascal, Visual Basic e C#.

Nesta dcada Java era uma linguagem mais conservadora, que foi desenvolvida atravs de colecta de lixo, ou programas que no tiveram tanto sucesso.

12

Algumas das linguagens mais importantes desta poca e inclusive a dcada de 2000 foram: 1990 - Haskell 1991 - Python 1991 Java 1993 - Ruby 1993 - Lua 1994 - ANSI Common Lisp 1995 - JavaScript 1995 PHP

(http://grupologica.forumslog.com/t86-a-historia-cronologica-das-linguagens-deprogramacao, visto no dia 29/10/2011; http://en.wikipedia.org/wiki/History_of_programming_languages, visto no dia ...) Na dcada de 2000, a linguagem e programao continuasse a desenvolver, tanto na indstria como na rea de pesquisa de novas tecnologias. Podemos dar como exemplo na rea em que ocorre a pesquisa, a construo de suporte concorrente e distribuio de programao e aintegrao com data bases incluindo XML e outros. Neste perodo as linguagem de programao consideradas mais importantes foram: 2001- C# 2001- Visual basic .NET 2002- F# 2003- Groovy 2003- Factor 2007- Clojure 2008 javaFX Script 2009- Go 2099-CofeeScript 2010Fancy 2011-Dart (Google)

A linguagem da programao no esttica e como tal evolui todos os dias, tanto na indstria, como na economia ou at por diverso. Todos os dias um novo programa criado ou actualizado de modo a fornecer uma melhor utilizao hs pessoas que os utilizam, sendo assim a programao muito importante para o nosso dia-a-dia. (http://en.wikipedia.org/wiki/History_of_programming_languages, visto no dia 29/10/2011)

13

IV - Consideraes finais
A tendncia mais natural e que tem sido a adoptada pelas ltimas linguagens a serem disponibilizadas a de cada vez mais estarem viradas para disponibilizar aplicaes na WEB, conseguirem ficar o mais independentes da plataforma queas utiliza e serem mais intuitivas para os programadores, natural que a prxima gerao se foque nas reas da inteligncia artificial e que permitam que cada vez mais os computadores se vo aproximando do ser humano na sua capacidade de decidir baseados em conceitos abstractos como justia ou moral. Verdadeiramente o futuro das prximas linguagens est somente dependente do que o mundo necessitar e de onde aparecerem novas oportunidades de negcio. Para terminar este grfico mostra as 20 linguagens de programao mais populares:

14

(Finley, Klint, The History of Programming Languages, http://www.readwriteweb.com/hack/2011/07/the-history-of-programming-languagesinfographic.php, visto no dia 29-10-2011)

V Bibliografia

Http://obviousmag.org/archives/2007/09/linguagens_de_p.html#ixzz1bJnA0HlL Http://www.readwriteweb.com/hack/2011/07/the-history-of-programming-languagesinfographic.php Http://pt.wikipedia.org/wiki/Histria_das_Linguagens_de_Programao Http://en.wikipedia.org/wiki/History_of_programming_languages

Verificar Primeiro se se vai usar!!! http://logbr.reflectivesurface.com/2003/03/26/evolucao-das-linguagens-deprogramacao/ http://oreilly.com/news/graphics/prog_lang_poster.pdf http://www.vscripts.net/ http://www.hardware.com.br/artigos/linguagens-programacao/ http://homepages.dcc.ufmg.br/~fpereira/classes/dcc024/ementa/readingMat/historyPL.p df

---------------------------------------------------------------------------------------------------------http://www.levenez.com/lang/ (alem do diagrama soberbo, tem outras infos que poderao ser uteis.) http://rigaux.org/language-study/diagram.html (vrios diagramas referente as linguagens) http://www.computernostalgia.net/articles/HistoryofProgrammingLanguages.htm (interligacao entre as varias linguagens, exemplos de cada, etc) ---------------------------------------------------------------------------------------------------------15

16