Você está na página 1de 37

Evoluo das linguagens de p g programao

Prof. Ilis Cavalcante Engenharia da Computao UFC/Sobral

1. Genealogia de linguagens de programao de alto-nvel alto-

2. 2 Evoluo de Linguagens
Os primeiros computadores
lentos, caros, limitados, pouco confiveis ausncia de software bsico
programao trabalhosa linguagem de mquina codificao mo

ausncia de reutilizao

2. 2 Evoluo de Linguagens
ENIAC Linguagem de mquina
falta de legibilidade endereamento absoluto

Linguagem de montagem
montadores uso de mnemnicos endereamento relativo

2. 2 Evoluo de Linguagens
FORTRAN (Formula Translator)
John Backus, 1957 IBM 704

Aplicaes cientficas A l f

2. Evoluo de Linguagens FORTRAN (Exemplo) (Exemplo)

2. 2 Evoluo de Linguagens
ALGOL 60 (Algorithmic Language)
GAMM e ACM, 1960 linguagem universal g g

Objetivos j
Sintaxe familiar Descrio de algoritmos em publicaes Traduo Genealogia de ALGOL 60

BNF (Backus-Naur Form)

2. Evoluo de Linguagens ALGOL 60 (Exemplo) (Exemplo)

2. Evoluo de Linguagens ALGOL 60 (Genealogia) (Genealogia)

2. 2 Evoluo de Linguagens
COBOL
Dept. de Defesa A li comerciais Aplicaes i i B do milnio Bug d il i

Genealogia d COBOL G l i de

2. Evoluo de Linguagens COBOL (exemplo 1) (exemplo

2. Evoluo de Linguagens COBOL (exemplo 2) (exemplo

2. Evoluo de Linguagens COBOL (exemplo 3) (exemplo

2. Evoluo de Linguagens
Programao Funcional: LISP
John McCarthy, MIT Influenciada pelo clculo (Alan Church)

Inteligncia Artificial Descendentes


Scheme Common Lisp Haskell ML

Caractersticas
P Processamento de listas t d li t

Representao interna de duas listas em LISP

2. 2 Evoluo de Linguagens
Exemplo Lisp
Common Lisp: (defunfatorial(n) (defun fatorial (n) (if(=n0) 1 (*n(fatorial( n1))))) Scheme: (definefatorial (lambda(n) (if(=n0) 1 (*n(fatorial( n1)))))) (* n (fatorial ( n 1))))))

2. 2 Evoluo de Linguagens
BASIC (Beginners 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. Evoluo de Linguagens BASIC (exemplo)

2. 2 Evoluo de Linguagens
PL/I
Espectro largo de reas de aplicao Dois grupos de usurios separados
SHARE: SHARE FORTRAN GUIDE: COBOL

IBM 360
Ponto-flutuante Aritmtica decimal

Caractersticas

Recursividade e estrutura em blocos Compilao separada Estrutura de dados, input/output, facilidades para gerao de relatrios

Genealogia de PL/I

2. 2 Evoluo 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 Evoluo de Linguagens
APL (A Programming Language)
Kenneth Iverson, IBM, 1960 Aplicaes cientficas Caractersticas
manipulao poderosa de arrays grande nmero de operadores

Conjunto de caracteres incomum


Terminais especiais

2. 2 Evoluo de Linguagens
APL Programa APL que calcula a mdia aritmtica de uma lista de nmeros {(+/& ) &! } Aplicao {(+/& ) &!

} 3 4 5 7 21 8.875 4.5 8 875

2. 2 Evoluo de Linguagens
SNOBOL (StriNg Oriented symBOlic Language)
Farber, Griswold and Polensky, Bell Labs., incio de 1960s Processamento de texto Caractersticas
Coleo de operaes para pattern matching ( (casamento de p padres) de cadeias ) Usada para programao de editores de texto

2. 2 Evoluo de Linguagens
SIMULA I, 1962-1964 I 1962 1964 SIMULA 67
Dahl and Nygaard, NCC Simulao e pesquisa operacional Caractersticas
Co-rotinas Classe Cl
Dados e rotinas empacotados

Instncias de classe Genealogia de SIMULA 67 g

2. 2 Evoluo de Linguagens
ALGOL 68
Wijngaarden

Aplicaes i fi A li cientficas Caractersticas


Tipos de dados definidos pelo usurio Genealogia d ALGOL 68 G l i de Arrays dinmicos Descrita atravs de W-grammars

2. 2 Evoluo 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. Evoluo de Linguagens g g
C
Denis Ritchie, Bell Labs, 1972 Programao de sistemas Caractersticas
Falta de verificao de tipos completa Parte do UNIX

Genealogia de C

2. 2 Evoluo de Linguagens
Prolog (Programming Logic)
Colmerauer, France, 1972

Programao no-procedimental
Usa clculo de predicados Usa resoluo
Mtodo de prova (Robinson 1965) (Robinson,

2. 2 Evoluo de Linguagens
Ada 83
DoD, 1975-1983 Li Linguagem mais cara e com i maior esforo de projeto caractersticas i
pacotes manipulao de excees genricos tarefas

Primeiro compilador: 1985

Ada 95

Genealogia de Ada

2. 2 Evoluo de Linguagens
SmallTalk
Alan Kay, 1972 Dynabook

Caractersticas
Classes e objetos Dinmica Mquina virtual
Bytecodes

Ambiente de Programao
Genealogia de Smalltalk

2. 2 Evoluo de Linguagens
C++ C Bjarne Stroustrup, Bell Labs, 1985 j p, , Evoluo a partir de C (C com tipos)
C Construes imperativas i i Construes orientadas a objetos

ANSI standard: November, 1997

2. 2 Evoluo de Linguagens
Eiffel
Meyer, 1992 Linguagem orientada a objetos Sintaxe similar a Pascal e ALGOL Caractersticas
Heranas mltiplas; Sobrecarga de operador; S b d d Classes genricas; Projeto por contrato:
Manipulao dos programas e seus resultados Prs e ps-condies que devem ser satisfeitas

2. 2 Evoluo 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 Evoluo de Linguagens
Java
James Gosling, Sun MicroSystems J g, y Baseada em C++, mas projetada para ser
Menor Mais simples Mais confivel Portvel

Java 1 1995 J Java 2 - 1998


Genealogia de Java

2. 2 Evoluo de Linguagens
Linguagens de script para a Web
JavaScript
Usada para programao de aplicaes Web (cliente) para criar documentos HTML dinmicos Relacionada a Java apenas atravs da sintaxe similar

PHP
Usada para programao de aplicaes Web (servidor) Gera cdigo HTML como sada

2. 2 Evoluo de Linguagens
Lua
tipada dinamicamente interpretada a p p partir de bytecodes para uma mquina y p q virtual baseada em registradores gerenciamento automtico de memria com coleta de lixo incremental incremental.

Essas caractersticas fazem de Lua uma linguagem ideal para configurao, automao (scripting) e configurao prototipagem rpida. Lua inteiramente projetada implementada e projetada, desenvolvida no Brasil, por uma equipe na PUCRio.

Você também pode gostar