Evolução das linguagens dep gprogramação         çProf. Iális CavalcanteEngenharia da Computação – UFC/Sobral
1. Genealogia de linguagens de programação de alto-nível                                              alto-
2.2 Evolução de Linguagens Os primeiros computadores ◦ lentos, caros, limitados, pouco confiáveis ◦ ausência de software b...
2.2 Evolução de Linguagens ENIAC Linguagem de máquina ◦ falta de legibilidade ◦ endereçamento absoluto Linguagem de montag...
2.2 Evolução de Linguagens FORTRAN (Formula Translator) ◦ John Backus, 1957 ◦ IBM 704 Aplicações científicas A l    õ     ...
2. Evolução de Linguagens – FORTRAN (Exemplo)                                    (Exemplo)
2.2 Evolução de Linguagens ALGOL 60 (Algorithmic Language) ◦ GAMM e ACM, 1960 ◦ linguagem universal      g g Objetivos   j...
2. Evolução de Linguagens – ALGOL 60 (Exemplo)                                     (Exemplo)
2. Evolução de Linguagens – ALGOL 60 (Genealogia)                                     (Genealogia)
2.2 Evolução de Linguagens COBOL ◦ Dept. de Defesa ◦ A li õ comerciais   Aplicações      i i ◦ “B ” do milênio   “Bug” d  ...
2. Evolução de Linguagens – COBOL (exemplo 1)                                  (exemplo
2. Evolução de Linguagens – COBOL (exemplo 2)                                  (exemplo
2. Evolução de Linguagens – COBOL (exemplo 3)                                  (exemplo
2. Evolução de Linguagens Programação Funcional: LISP ◦ John McCarthy, MIT ◦ Influenciada pelo λ–cálculo (Alan Church) Int...
Representação interna de duas listas em LISP
2.2 Evolução de Linguagens   Exemplo LispCommon Lisp:(defun fatorial (n)(defun fatorial (n) (if (= n 0)   1   (* n (fatori...
2.2 Evolução de LinguagensBASIC (Beginner’s All-Purpose Symbolic      ( g                p     yInstruction Code)◦ J Kemen...
2. Evolução de Linguagens – BASIC(exemplo)
2. 2 Evolução de LinguagensPL/I◦ Espectro largo de áreas de aplicação◦ Dois grupos de usuários separados   SHARE:   SHARE ...
2.2 Evolução de Linguagens PL/I (Exemplo)HELLO:   PROCEDURE OPTIONS (MAIN);             /             /* A PROGRAM TO OUTP...
2.2 Evolução de Linguagens APL (A Programming Language) ◦ Kenneth Iverson, IBM, 1960 ◦ Aplicações científicas ◦ Caracterís...
2.2 Evolução de Linguagens APL Programa APL que calcula a média aritmética de uma lista de números               {(+/& ) ÷...
2.2 Evolução de Linguagens SNOBOL (StriNg Oriented symBOlic Language) ◦ Farber, Griswold and Polensky, Bell Labs.,   iníci...
2.2 Evolução de LinguagensSIMULA I, 1962-1964       I 1962 1964SIMULA 67◦ Dahl and Nygaard, NCC◦ Simulação e pesquisa oper...
2.2 Evolução de LinguagensALGOL 68◦ WijngaardenAplicações i ífiA li õ científicasCaracterísticas◦ Tipos de dados   definid...
2.2 Evolução de LinguagensALGOL: Descendentes◦ Pascal     Niklaus Wi h     Nikl Wirth, 1971     Uso: Ensino◦   Modula-2   ...
2. Evolução de Linguagens        ç         g gC ◦ Denis Ritchie, Bell Labs, 1972 ◦ Programação de sistemas ◦ Característic...
2.2 Evolução de Linguagens Prolog (Programming Logic) ◦ Colmerauer, France, 1972 Programação não-procedimental ◦ Usa cálcu...
2.2 Evolução de Linguagens Ada 83 ◦ DoD, 1975-1983 ◦ Li   Linguagem mais cara e com                  i    maior esforço de...
2.2 Evolução de LinguagensSmallTalk◦ Alan Kay, 1972◦ DynabookCaracterísticas◦ Classes e objetos◦ Dinâmica◦ Máquina virtual...
2.2 Evolução de LinguagensC++CBjarne Stroustrup, Bell Labs, 1985 j               p,         ,Evolução a partir de C (C com...
2.2 Evolução de LinguagensEiffel◦   Meyer, 1992◦   Linguagem orientada a objetos◦   Sintaxe similar a Pascal e ALGOL◦   Ca...
2.2 Evolução de Linguagens  Exemplo de Eiffel (Hello World):class HELLO_WORLD create   make     ake feature   make is     ...
2. 2 Evolução de LinguagensJava◦ James Gosling, Sun MicroSystems  J           g,           y◦ Baseada em C++, mas projetad...
2.2 Evolução de Linguagens Linguagens de script para a Web ◦ JavaScript    Usada para programação de aplicações Web    (cl...
2.2 Evolução de LinguagensLua   tipada dinamicamente   interpretada a p         p        partir de bytecodes para uma máqu...
Unidade02
Upcoming SlideShare
Loading in …5
×

Unidade02

1,145 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,145
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Unidade02

  1. 1. Evolução das linguagens dep gprogramação çProf. Iális CavalcanteEngenharia da Computação – UFC/Sobral
  2. 2. 1. Genealogia de linguagens de programação de alto-nível alto-
  3. 3. 2.2 Evolução de Linguagens Os primeiros computadores ◦ lentos, caros, limitados, pouco confiáveis ◦ ausência de software básico programação trabalhosa linguagem de máquina codificação à mão ◦ ausência de reutilização
  4. 4. 2.2 Evolução de Linguagens ENIAC Linguagem de máquina ◦ falta de legibilidade ◦ endereçamento absoluto Linguagem de montagem ◦ montadores ◦ uso de mnemônicos ◦ endereçamento relativo
  5. 5. 2.2 Evolução de Linguagens FORTRAN (Formula Translator) ◦ John Backus, 1957 ◦ IBM 704 Aplicações científicas A l õ íf
  6. 6. 2. Evolução de Linguagens – FORTRAN (Exemplo) (Exemplo)
  7. 7. 2.2 Evolução de Linguagens ALGOL 60 (Algorithmic Language) ◦ GAMM e ACM, 1960 ◦ linguagem universal g g Objetivos j ◦ Sintaxe familiar ◦ Descrição de algoritmos em publicações ◦ Tradução Genealogia de ALGOL 60 BNF (Backus-Naur Form)
  8. 8. 2. Evolução de Linguagens – ALGOL 60 (Exemplo) (Exemplo)
  9. 9. 2. Evolução de Linguagens – ALGOL 60 (Genealogia) (Genealogia)
  10. 10. 2.2 Evolução de Linguagens COBOL ◦ Dept. de Defesa ◦ A li õ comerciais Aplicações i i ◦ “B ” do milênio “Bug” d ilê i Genealogia d COBOL G l i de
  11. 11. 2. Evolução de Linguagens – COBOL (exemplo 1) (exemplo
  12. 12. 2. Evolução de Linguagens – COBOL (exemplo 2) (exemplo
  13. 13. 2. Evolução de Linguagens – COBOL (exemplo 3) (exemplo
  14. 14. 2. Evolução de Linguagens Programação Funcional: LISP ◦ John McCarthy, MIT ◦ Influenciada pelo λ–cálculo (Alan Church) Inteligência Artificial Descendentes ◦ Scheme ◦ Common Lisp ◦ Haskell ◦ ML Características ◦ P Processamento de listas t d li t
  15. 15. Representação interna de duas listas em LISP
  16. 16. 2.2 Evolução de Linguagens Exemplo LispCommon Lisp:(defun fatorial (n)(defun fatorial (n) (if (= n 0) 1 (* n (fatorial (‐ n 1)))))Scheme:(define fatorial (lambda (n) (if (= n 0) 1 (* n (fatorial (‐ n 1)))))) (* n (fatorial ( n 1))))))
  17. 17. 2.2 Evolução de LinguagensBASIC (Beginner’s All-Purpose Symbolic ( g p yInstruction Code)◦ J Kemeny e T.Kurtz, 1965, Dartmouth College J.Kemeny TKurtz 1965Uso com microcomputadoresSimples interpretadaSi l e i d Genealogia de BASIC
  18. 18. 2. Evolução de Linguagens – BASIC(exemplo)
  19. 19. 2. 2 Evolução de LinguagensPL/I◦ Espectro largo de áreas de aplicação◦ Dois grupos de usuários separados SHARE: SHARE FORTRAN GUIDE: COBOL◦ IBM 360 Ponto-flutuante Aritmética decimal◦ Características Genealogia de PL/I Recursividade e estrutura em blocos Compilação separada Estrutura de dados, input/output, facilidades para geração de relatórios
  20. 20. 2.2 Evolução de Linguagens PL/I (Exemplo)HELLO: PROCEDURE OPTIONS (MAIN); / /* A PROGRAM TO OUTPUT HELLO WORLD */ / FLAG = 0;LOOP: DO WHILE (FLAG = 0); PUT SKIP DATA(HELLO WORLD!); END LOOP;END HELLO;
  21. 21. 2.2 Evolução de Linguagens APL (A Programming Language) ◦ Kenneth Iverson, IBM, 1960 ◦ Aplicações científicas ◦ Características manipulação poderosa de arrays grande número de operadores ◦ Conjunto de caracteres incomum Terminais especiais
  22. 22. 2.2 Evolução de Linguagens APL Programa APL que calcula a média aritmética de uma lista de números {(+/& ) ÷ &! } Aplicação {(+/& ) ÷ &! } 3 4 5 7 21 8.875 4.5 8 875
  23. 23. 2.2 Evolução de Linguagens SNOBOL (StriNg Oriented symBOlic Language) ◦ Farber, Griswold and Polensky, Bell Labs., início de 1960s ◦ Processamento de texto ◦ Características Coleção de operações para pattern matching ( (“casamento de p padrões”) de cadeias ) Usada para programação de editores de texto
  24. 24. 2.2 Evolução de LinguagensSIMULA I, 1962-1964 I 1962 1964SIMULA 67◦ Dahl and Nygaard, NCC◦ Simulação e pesquisa operacional◦ Características Co-rotinas Classe Cl Dados e rotinas empacotados Instâncias de classe Genealogia de SIMULA 67 g
  25. 25. 2.2 Evolução de LinguagensALGOL 68◦ WijngaardenAplicações i ífiA li õ científicasCaracterísticas◦ Tipos de dados definidos pelo usuário Genealogia d ALGOL 68 G l i de◦ Arrays dinâmicos◦ Descrita através de W-grammars
  26. 26. 2.2 Evolução de LinguagensALGOL: Descendentes◦ Pascal Niklaus Wi h Nikl Wirth, 1971 Uso: Ensino◦ Modula-2 Modula 2◦ Modula-3◦ Oberon◦ Object Pascal (Delphi) (D l hi) Genealogia de Pascal
  27. 27. 2. Evolução de Linguagens ç g gC ◦ Denis Ritchie, Bell Labs, 1972 ◦ Programação de sistemas ◦ Características Falta de verificação de tipos completa Parte do UNIX Genealogia de C
  28. 28. 2.2 Evolução de Linguagens Prolog (Programming Logic) ◦ Colmerauer, France, 1972 Programação não-procedimental ◦ Usa cálculo de predicados ◦ Usa resolução Método de prova (Robinson 1965) (Robinson,
  29. 29. 2.2 Evolução de Linguagens Ada 83 ◦ DoD, 1975-1983 ◦ Li Linguagem mais cara e com i maior esforço de projeto ◦ características í i pacotes manipulação de exceções genéricos tarefas ◦ Primeiro compilador: 1985 Genealogia de Ada Ada 95
  30. 30. 2.2 Evolução de LinguagensSmallTalk◦ Alan Kay, 1972◦ DynabookCaracterísticas◦ Classes e objetos◦ Dinâmica◦ Máquina virtual Bytecodes◦ Ambiente de Programação Genealogia de Smalltalk
  31. 31. 2.2 Evolução de LinguagensC++CBjarne Stroustrup, Bell Labs, 1985 j p, ,Evolução a partir de C (C com tipos)◦CConstruções imperativas õ i i◦ Construções orientadas a objetosANSI standard: November, 1997
  32. 32. 2.2 Evolução de LinguagensEiffel◦ Meyer, 1992◦ Linguagem orientada a objetos◦ Sintaxe similar a Pascal e ALGOL◦ Características Heranças múltiplas; Sobrecarga de operador; S b d d Classes genéricas; Projeto por contrato: Manipulação dos programas e seus resultados Prés e pós-condições que devem ser satisfeitas
  33. 33. 2.2 Evolução de Linguagens Exemplo de Eiffel (Hello World):class HELLO_WORLD create make ake feature make is do io.put_strring("Hello World!%N") end end
  34. 34. 2. 2 Evolução de LinguagensJava◦ James Gosling, Sun MicroSystems J g, y◦ Baseada em C++, mas projetada para ser Menor Mais simples Mais confiável Portável◦ Java 1 – 1995◦ J Java 2 - 1998 Genealogia de Java
  35. 35. 2.2 Evolução de Linguagens Linguagens de script para a Web ◦ JavaScript Usada para programação de aplicações Web (cliente) para criar documentos HTML dinâmicos Relacionada a Java apenas através da sintaxe similar ◦ PHP Usada para programação de aplicações Web (servidor) Gera código HTML como saída
  36. 36. 2.2 Evolução de LinguagensLua tipada dinamicamente interpretada a p p partir de bytecodes para uma máquina y p q virtual baseada em registradores gerenciamento automático de memória com coleta de lixo incremental incremental.◦ Essas características fazem de Lua uma linguagem ideal para configuração, automação (scripting) e configuração prototipagem rápida.◦ Lua é inteiramente projetada implementada e projetada, desenvolvida no Brasil, por uma equipe na PUC- Rio.

×