Your SlideShare is downloading. ×
0
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Unidade02
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Unidade02

866

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
866
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
33
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Evolução das linguagens dep gprogramação çProf. Iális CavalcanteEngenharia da Computação – UFC/Sobral
  • 2. 1. Genealogia de linguagens de programação de alto-nível alto-
  • 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. 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. 2.2 Evolução de Linguagens FORTRAN (Formula Translator) ◦ John Backus, 1957 ◦ IBM 704 Aplicações científicas A l õ íf
  • 6. 2. Evolução de Linguagens – FORTRAN (Exemplo) (Exemplo)
  • 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. 2. Evolução de Linguagens – ALGOL 60 (Exemplo) (Exemplo)
  • 9. 2. Evolução de Linguagens – ALGOL 60 (Genealogia) (Genealogia)
  • 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. 2. Evolução de Linguagens – COBOL (exemplo 1) (exemplo
  • 12. 2. Evolução de Linguagens – COBOL (exemplo 2) (exemplo
  • 13. 2. Evolução de Linguagens – COBOL (exemplo 3) (exemplo
  • 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. Representação interna de duas listas em LISP
  • 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. 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. 2. Evolução de Linguagens – BASIC(exemplo)
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×