Você está na página 1de 6

UFF UNIVERSIDADE FEDERAL FLUMINENSE PEDRO PAULO P. DA C. ZANARDI ENG.

ELTRICA 1 PERODO INTRODUO A INFORMTICA

LINGUAGENS DE PROGRAMAO E OUTRAS TECNOLOGIAS

As linguagens de programao foram desenvolvidas antes do acontecimento dos computadores modernos. De incio as linguagens eram apenas cdigos. Inicialmente em nove meses entre 1842-43, Ada Lovelace traduziu as memrias do matemtico italiano Luigi Menabrea sobre a mais nova mquina proposta por Charles Babbage, a sua mquina analtica. Com o artigo, ela anexou uma srie de anotaes que especificavam em completo detalhe um mtodo para calcular nmeros de Bernoulli com a mquina, reconhecido por alguns historiadores como o primeiro programa de computador do mundo. O tear de Jacquard, inventado em 1801, usava furos em cartes perfurados para representar os movimentos do brao do tear ao realizar costuras, a fim de gerar padres decorativos automaticamente.

Herman Hollerith percebeu que poderia codificar a informao em cartes perfurados, quando ele
observou que o condutor de trens controlava a presena dos titulares dos bilhetes de trem com a posio dos furos no bilhete. Hollerith, ento, comeou a codificar os dados do censo de 1890 em cartes perfurados. Os primeiros cdigos para computador eram especializados segundo as aplicaes. Nas primeiras dcadas do sculo XX, os clculos numricos eram baseados em nmeros decimais. Eventualmente, se percebeu que a lgica podia ser representada com nmeros, to bem como com as palavras. Por exemplo, Alonzo Church foi capaz de expressar o clculo lambda de uma maneira formalizada. A mquina de Turing era uma abstrao do funcionamento da mquina de uma fita de marcao, por exemplo, em uso em empresas de telefonia. No entanto, ao contrrio do clculo lambda, o cdigo elaborado por Turing no serviam como uma base para linguagens de alto nvel - a sua utilizao principal era na anlise rigorosa da complexidade algortmica. Como muitos "primeiros" na histria, a primeira linguagem de programao moderna difcil de ser identificada. No incio, as restries do hardware definiam a linguagem. Cartes perfurados dispunham de at 80 colunas, mas algumas das colunas tinham que ser usados para um nmero de sequncia de cada carto. Fortran inclua palavras-chave que eram as mesmas palavras em Ingls, como "IF" (se), "GOTO" (v para) e "CONTINUE" (continue). O uso de um tambor magntico para a memria significava que os programas de computador tambm tinham que ser intercalados com as rotaes do tambor. Assim, os programas eram mais dependentes do hardware do que hoje. Para algumas pessoas, a resposta depende de quanta energia e legibilidade humana necessria antes que o status de "linguagem de programao" seja concedido. Os teares de Jacquard e a mquina diferencial de Charles Babbage, ambos tinham linguagens simples e extremamente limitadas para descrever as aes que estas mquinas deviam executar. Alguns podem at alegar que as perfuraes de cartes para pianos possam ser vistas como uma linguagem de propsito especfica, embora no destinadas ao consumo humano.

ANOS 70
Na dcada de 1940 os primeiros computadores eltricos, reconhecidamente modernos, foram criados. A velocidade limitada capacidade da memria forava os programadores a escrever a mo economicamente programas em linguagem de montagem (linguagem de mquina). Logo se descobriu

que a programao em linguagem assembly exigia um grande esforo intelectual e era muito sujeita a erros. Em 1948, Konrad Zuse publicou um artigo sobre a sua linguagem de programao Plankalkl. No entanto, esta no foi implementada em sua poca e suas contribuies originais foram isoladas de outros desenvolvimentos. Algumas linguagens importantes que foram desenvolvidas durante este perodo incluem: 1943 - Plankalkl (Konrad Zuse) 1943 - ENIAC coding system 1949 - C-10

ANOS 50 E 60
Na dcada de 1950 as primeiras trs linguagens de programao modernas, cujos descendentes ainda esto em uso difundido hoje foram concebidas:

FORTRAN (1955), a "FORmula TRANslator", inventada por John Backus e outros.; LISP, a "LISt Processor", inventada por John McCarthy e outros.;
COBOL, a COmmon Business Oriented Language, criada pelo Short Range Committee, com grande influncia de Grace Hopper. Outro marco na dcada de 1950 foi a publicao, por um comit de cientistas americanos e europeus, de "uma nova linguagem para os algoritmos", a ALGOL 60 atravs da publicao do relatrio "The ALGOL 60 Report (the "ALGOrithmic Language")". Este relatrio consolidou muitas idias que circulavam na poca e apresentou duas inovaes chave quanto ao projeto de linguagens: 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. Outra inovao, relacionada a esta ltima, foi na forma como a linguagem foi descrita: Uma notao matemtica exata, Backus-Naur (BNF), foi utilizada para descrever a sintaxe da linguagem. Quase todas as linguagens de programao posteriores utilizaram uma variante da BNF para descrever a parte livre de contexto de sua sintaxe. Algol 60 foi particularmente influente na concepo das linguagens posteriores, algumas das quais logo se tornaram mais populares. Os grandes sistemas da Burroughs foram projetados para serem programada em um subconjunto estendido do Algol, a WFL (Work Flow Language). Algumas ideias-chave da linguagem Algol foram tomadas, produzindo-se a linguagem ALGOL 68: A sintaxe e semntica se tornaram ainda mais ortogonais, com rotinas annimas, um sistema recursivo de digitao com funes de ordem superior, etc.; No somente a parte livre de contexto da linguagem, mas a sintaxe da linguagem completa e a semntica foram definidos formalmente, em termos da gramtica de Van Wijngaarden, um formalismo desenvolvido especificamente para esta finalidade. Os recursos pouco utilizados de Algol 68 (por exemplo, blocos simultneos e paralelos) e seu complexo sistema de atalhos sintticos e coeres de tipo automtico tornou a linguagem impopular entre os implementadores e ganhou a reputao de ser difcil. Niklaus Wirth realmente saiu do comit de projeto para criar uma linguagem mais simples: Pascal.

Panorama das duas dcadas: 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 1964 - BASIC 1964 - PL/I

1967-1978
O perodo compreendido entre o final dos anos 1960 dcada de 1970 trouxe um grande florescimento de linguagens de programao. A maioria dos principais paradigmas de linguagem agora em uso foram inventados durante este perodo: Simula, inventada nos anos 1960 por Nygaard e Dahl como um super. conjunto de Algol 60 foi 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 projeto de uma linguagem orientada a objetos. Prolog, projetada em 1972 por Colmerauer, Roussel, e Kowalski, foi primeira linguagem de programao do paradigma lgico. ML built a polymorphic type system (inventada por Robin Milner em 1973) uma linguagem funcional, baseada em LISP, estaticamente tipada. Cada uma dessas lnguas gerou toda uma famlia de descendentes, e linguagens mais modernas contam, pelo menos, com uma delas em sua ascendncia. Algumas linguagens importantes que foram desenvolvidas durante este perodo incluem: 1970 - Pascal 1970 - Forth 1972 - C 1972 - Smalltalk 1972 - Prolog

1973 - ML 1978 - SQL (inicialmente apenas uma linguagem de consulta, mais tarde estendido com construes de programao).

1980
Os anos 1980 foram anos de relativa consolidao. C++ combinou orientao a objetos e programao de sistemas. O governo dos Estados Unidos padronizou a Ada, uma linguagem de programao de sistemas destinados utilizao por parte dos contratantes de defesa. No Japo e em outros lugares, vastas somas foram gastas investigando as chamadas linguagens de programao de quinta gerao que incorporavam a programao lgica em suas construes. A comunidade de linguagens funcionais se dedicou a padronizar a ML e o Lisp. Ao invs de inventar novos paradigmas, todos estes esforos visaram aperfeioar as ideias inventadas na dcada anterior. No entanto, uma tendncia nova e importante na concepo de linguagens foi o aumento do foco na programao de sistemas de larga escala com o uso de mdulos, ou em unidades organizacionais de cdigo de larga-escala. As linguagens Modulam, Ada e ML desenvolveram notveis sistemas de mdulos na dcada de 1980. Sistemas modulares muitas vezes eram associados com a programao genrica construes --- genricas vindas a serem, em essncia, mdulos parametrizados. Embora os principais paradigmas novos para as linguagens de programao no tivessem aparecido, muitos pesquisadores expandiram as ideias das linguagens existentes adaptando-os para novos contextos. Por exemplo, as linguagens dos sistemas Argus e Emerald adaptaram a programao orientada a objeto para os seus sistemas distribudos. A dcada de 1980 tambm trouxe avanos na implementao das linguagens de programao. O movimento RISC, em arquitetura de computadores postulou que o hardware deveria ser concebido para os compiladores ao invs de ser voltado a programadores assembly. Ajudado por melhorias na velocidade dos processadores que permitiram cada vez mais tcnicas agressivas de compilao, o movimento RISC despertou maior interesse na tecnologia de compilao para linguagens de alto nvel. A tecnologia de linguagens continuou ao longo destas linhas durante a dcada de 1990. Algumas linguagens importantes que foram desenvolvidas durante este perodo incluem: 1983 - Ada 1983 - C++ 1985 - Eiffel 1987 - Perl 1989 - FL (Backus)

A INTERNET
A dcada de 1990 no viu nenhuma novidade fundamental, mas a recombinao e maturao das idias antigas. Uma filosofia de grande importncia era a produtividade do programador. Muitas linguagens com "aplicaes de desenvolvimento rpido" (RAD) surgiram, geralmente vindo com um IDE, coleta de lixo, e eram descendentes de linguagens mais antigas. Todas essas linguagens foram orientadas a objeto. Entre estas estavam a Objeto Pascal, Visual Basic, e C#. Java era uma linguagem mais conservadora, que tambm incluiu a coleta de lixo e recebeu muita ateno. Mais radicais e inovadoras do que as lnguas RAD foram s novas linguagens de scripting. Estas no descenderam diretamente das outras linguagens e contaram com sintaxes novas e incorporao mais liberal de novas funcionalidades. Muitos consideram essas linguagens de scripting mais produtivas do que at mesmo as linguagens RAD, mas muitas vezes, por causa da facilidade com que pequenos programas podem ser escritos e mantidos. No entanto, linguagens de scripting vieram a ser mais proeminentes usadas em conexo com a web. Algumas linguagens importantes que foram desenvolvidas durante este perodo incluem:

1990 - Haskell 1991 - Python 1991 - Java 1993 - Ruby 1993 - Lua 1994 - ANSI Common Lisp 1995 - JavaScript 1995 - PHP 2000 - C# 2008 - JavaFX Script

ATUALMENTE
A evoluo das linguagens de programao continua, tanto na indstria quanto na pesquisa. Algumas das tendncias atuais incluem: Mecanismos para a adio de segurana e verificao da confiabilidade para a linguagem: verificao esttica prolongada, controle de fluxo de informao, esttico segurana em threads. Mecanismos alternativos de modularidade: mixin s, Delegao de programao, programao orientada a aspectos. Desenvolvimento de software orientado a componentes. Metaprogramao, Reflexo ou acesso a rvores de sintaxe abstratas. Maior nfase na distribuio e mobilidade. Integrao com bases de dados, incluindo XML e bancos de dados relacionais. Suporte para Unicode de forma que o cdigo-fonte no esteja restrito aos caracteres contidos no cdigo ASCII; permitindo, por exemplo, o uso de scripts no latinos ou pontuao estendida. XML para a interfaces grficas (XUL, XAML).

PESSOAS DE DESTAQUE NO MUNDO TECLONGICO


John Backups, inventor do Fortran. John McCarthy, inventor do LISP. Alan Cooper, desenvolveu o Visual Basic. Edsger W. Dijkstra, desenvolveu o framework de programao adequada. James Gosling, desenvolveu a linguagem Oak, precursora do Java. Anders Hejlsberg, desenvolveu o Turbo Pascal e o C#. Grace Hopper, desenvolveu o Flow-Matic, influenciando o COBOL. Kenneth E. Iverson, desenvolveu o APL. Bill Joy, inventor do vi, um dos primeiros autores do BSD Unix, e criador do SunOS, que veio a se tornar o sistema operacional Solaris.

Alan Kay, Pioneiro da programao orientada a objeto, e autor do Smalltalk. Brian Kernighan, co-autor do primeiro livro sobre a linguagem C junto com Dennis Ritchie, co-autor das linguagens AWK e AMPL. John von Neumann, autor do conceito de Sistema Operacional. Dennis Ritchie, inventor do C. Bjarne Stroustrup, desenvolveu o C++. Ken Thompson, inventor do Unix. Niklaus Wirth inventor do Pascal e Modula.

PERGUNTAS QUAIS FORAM AS PRINCIPAIS LINGUAGENS DE PROGRAMAO CRIADAS NA DCADA DE 90? QUAL O NOME DA 1 PROGRAMADORA? QUAL NOME DA PRIMEIRA LINGUAGEM DE PROGRAMAO? EM SUA OPINIO, QUAIS AS EMPRESAS QUE MAIS DE DESTACARAM NO DESENVOLVIMENTO DE TECNOLOGIAS? DEFINA PROGRAMAO ESTRUTURADA?