SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Evolução das linguagens de
p g
programação
         ç
Prof. Iális Cavalcante

Engenharia 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ásico
    programação trabalhosa
      linguagem de máquina
      codificação à mão
 ◦ ausência de reutilização
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
2.
2 Evolução de Linguagens
 FORTRAN (Formula Translator)
 ◦ John Backus, 1957
 ◦ IBM 704


 Aplicações científicas
 A l    õ        íf
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
 ◦ Sintaxe familiar
 ◦ Descrição de algoritmos
    em publicações
 ◦ Tradução                  Genealogia de ALGOL 60


 BNF (Backus-Naur Form)
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  ilê i




                         Genealogia d COBOL
                         G    l i de
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)
 Inteligência Artificial
 Descendentes
 ◦   Scheme
 ◦   Common Lisp
 ◦   Haskell
 ◦   ML
 Características
 ◦ P
   Processamento de listas
              t d li t
Representação interna de duas listas em LISP
2.
2 Evolução de Linguagens
   Exemplo Lisp
Common 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))))))
2.
2 Evolução de Linguagens
BASIC (Beginner’s All-Purpose Symbolic
      ( g                p     y
Instruction Code)
◦ J Kemeny e T.Kurtz, 1965, Dartmouth College
  J.Kemeny TKurtz 1965
Uso com microcomputadores
Simples interpretada
Si l e i          d




               Genealogia de BASIC
2. Evolução de Linguagens – BASIC
(exemplo)
2.
 2 Evolução de Linguagens
PL/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
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;
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
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
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
2.
2 Evolução de Linguagens
SIMULA I, 1962-1964
       I 1962 1964
SIMULA 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
2.
2 Evolução de Linguagens
ALGOL 68
◦ Wijngaarden
Aplicações i ífi
A li õ científicas
Caracterí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
2.
2 Evolução de Linguagens
ALGOL: 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
2. Evolução de Linguagens
        ç         g g

C
 ◦ Denis Ritchie, Bell Labs, 1972
 ◦ Programação de sistemas
 ◦ Características
     Falta de verificação de tipos completa
     Parte do UNIX




                                              Genealogia de C
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,
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
2.
2 Evolução de Linguagens
SmallTalk
◦ Alan Kay, 1972
◦ Dynabook
Características
◦ Classes e objetos
◦ Dinâmica
◦ Máquina virtual
   Bytecodes
◦ Ambiente de Programação


                            Genealogia de Smalltalk
2.
2 Evolução de Linguagens
C++
C
Bjarne Stroustrup, Bell Labs, 1985
 j               p,         ,
Evolução a partir de C (C com tipos)
◦CConstruções imperativas
          õ i        i
◦ Construções orientadas a objetos
ANSI standard: November, 1997
2.
2 Evolução de Linguagens
Eiffel
◦   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
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
2.
 2 Evolução de Linguagens
Java
◦ 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
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
2.
2 Evolução de Linguagens
Lua
   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.

Contenu connexe

Similaire à Unidade02

silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
AmlieOGalaxias
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
Adriano Teixeira de Souza
 
Iron Python
Iron PythonIron Python
Iron Python
pugpe
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
essa
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
essa
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
Wilson Lima
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Tchelinux
 
Linguagem de Programação
Linguagem de ProgramaçãoLinguagem de Programação
Linguagem de Programação
moiplabs
 

Similaire à Unidade02 (20)

Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptx
 
Trabalho cobol e basic
Trabalho cobol e basicTrabalho cobol e basic
Trabalho cobol e basic
 
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Slides 04 - A Linguagem Java.pdf
Slides 04 - A Linguagem Java.pdfSlides 04 - A Linguagem Java.pdf
Slides 04 - A Linguagem Java.pdf
 
The Next Big Language
The Next Big LanguageThe Next Big Language
The Next Big Language
 
Iron Python
Iron PythonIron Python
Iron Python
 
Progamacao para não programadores
Progamacao para não programadoresProgamacao para não programadores
Progamacao para não programadores
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
 
10 Linguagens de programação essenciais
10 Linguagens de programação essenciais10 Linguagens de programação essenciais
10 Linguagens de programação essenciais
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
 
Linguagem de Programação
Linguagem de ProgramaçãoLinguagem de Programação
Linguagem de Programação
 

Plus de Ialis Cavalcante (15)

Assembleia com os Discentes - SACEC
Assembleia com os Discentes - SACECAssembleia com os Discentes - SACEC
Assembleia com os Discentes - SACEC
 
Minicurso Ercemapi 2011
Minicurso Ercemapi 2011Minicurso Ercemapi 2011
Minicurso Ercemapi 2011
 
Unidade7 1
Unidade7 1Unidade7 1
Unidade7 1
 
Programacao logica
Programacao logicaProgramacao logica
Programacao logica
 
05 poo-ii
05   poo-ii05   poo-ii
05 poo-ii
 
Unidade06
Unidade06Unidade06
Unidade06
 
Introducao ao greenfoot
Introducao ao greenfootIntroducao ao greenfoot
Introducao ao greenfoot
 
Dinamicas
DinamicasDinamicas
Dinamicas
 
Interface grafica
Interface graficaInterface grafica
Interface grafica
 
Unidade05
Unidade05Unidade05
Unidade05
 
Unidade04
Unidade04Unidade04
Unidade04
 
Unidade03
Unidade03Unidade03
Unidade03
 
Técnicas de PDI com Java - Ercemapi 2009
Técnicas de PDI com Java - Ercemapi 2009Técnicas de PDI com Java - Ercemapi 2009
Técnicas de PDI com Java - Ercemapi 2009
 
CCT 23Maio2009 Sobral
CCT 23Maio2009 SobralCCT 23Maio2009 Sobral
CCT 23Maio2009 Sobral
 
Introducao ao LaTeX
Introducao ao LaTeXIntroducao ao LaTeX
Introducao ao LaTeX
 

Dernier

ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
LidianeLill2
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
rfmbrandao
 

Dernier (20)

Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptx
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 

Unidade02

  • 1. Evolução das linguagens de p g programação ç Prof. Iális Cavalcante Engenharia 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.
  • 6. 2. 2 Evolução de Linguagens FORTRAN (Formula Translator) ◦ John Backus, 1957 ◦ IBM 704 Aplicações científicas A l õ íf
  • 7. 2. Evolução de Linguagens – FORTRAN (Exemplo) (Exemplo)
  • 8. 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)
  • 9. 2. Evolução de Linguagens – ALGOL 60 (Exemplo) (Exemplo)
  • 10. 2. Evolução de Linguagens – ALGOL 60 (Genealogia) (Genealogia)
  • 11. 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
  • 12. 2. Evolução de Linguagens – COBOL (exemplo 1) (exemplo
  • 13. 2. Evolução de Linguagens – COBOL (exemplo 2) (exemplo
  • 14. 2. Evolução de Linguagens – COBOL (exemplo 3) (exemplo
  • 15. 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
  • 16. Representação interna de duas listas em LISP
  • 17. 2. 2 Evolução de Linguagens Exemplo Lisp Common 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))))))
  • 18. 2. 2 Evolução de Linguagens BASIC (Beginner’s All-Purpose Symbolic ( g p y Instruction Code) ◦ J Kemeny e T.Kurtz, 1965, Dartmouth College J.Kemeny TKurtz 1965 Uso com microcomputadores Simples interpretada Si l e i d Genealogia de BASIC
  • 19. 2. Evolução de Linguagens – BASIC (exemplo)
  • 20. 2. 2 Evolução de Linguagens PL/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
  • 21. 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;
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 2. 2 Evolução de Linguagens SIMULA I, 1962-1964 I 1962 1964 SIMULA 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
  • 26. 2. 2 Evolução de Linguagens ALGOL 68 ◦ Wijngaarden Aplicações i ífi A li õ científicas Caracterí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
  • 27. 2. 2 Evolução de Linguagens ALGOL: 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
  • 28. 2. Evolução de Linguagens ç g g C ◦ Denis Ritchie, Bell Labs, 1972 ◦ Programação de sistemas ◦ Características Falta de verificação de tipos completa Parte do UNIX Genealogia de C
  • 29. 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,
  • 30. 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
  • 31. 2. 2 Evolução de Linguagens SmallTalk ◦ Alan Kay, 1972 ◦ Dynabook Características ◦ Classes e objetos ◦ Dinâmica ◦ Máquina virtual Bytecodes ◦ Ambiente de Programação Genealogia de Smalltalk
  • 32. 2. 2 Evolução de Linguagens C++ C Bjarne Stroustrup, Bell Labs, 1985 j p, , Evolução a partir de C (C com tipos) ◦CConstruções imperativas õ i i ◦ Construções orientadas a objetos ANSI standard: November, 1997
  • 33. 2. 2 Evolução de Linguagens Eiffel ◦ 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
  • 34. 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
  • 35. 2. 2 Evolução de Linguagens Java ◦ 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
  • 36. 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
  • 37. 2. 2 Evolução de Linguagens Lua 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.