Evolução das Principais Linguagens de Programação Marcelo Marinho (marinho.mlm@gmail.com) 1
Histórico Linguagens que introduziram conceitos importantes e que ainda estão em uso: 1955 - 1965 FORTRAN (FORmula TRANslation) COBOL (COmmon Business Oriented Language) ALGOL 60 (ALGorithmic Oriented Language) LISP (LISt Processing) APL (A Programming Language) BASIC (Beginners All-purpose Symbolic Instruction Code Estudo de Linguagens de Programação - Prof. Marcelo Marinho
1965 – 1971 (LP's baseadas em ALGOL) Linguagens dos anos 80 Histórico 1965 – 1971 (LP's baseadas em ALGOL) PL/I (Programming Language I) SIMULA 67 ALGOL 68 PASCAL Linguagens dos anos 80 PROLOG (PROgramming in LOGic) SMALL TALK C MODULA 2 ADA Java Estudo de Linguagens de Programação - Prof. Marcelo Marinho
FORTRAN (FORmula TRANslation) Histórico FORTRAN (FORmula TRANslation) Desenvolvida em 1956 por John Backus (Univ. Stanford); 1a LP de alto nível; Resolução de problemas científicos; Ainda usada no meio técnico-científico; Inicialmente para o IBM 704, hoje existem diversas versões; Vasta biblioteca de rotinas (redução de custo e tempo). Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Contribuições de FORTRAN: Histórico Contribuições de FORTRAN: Variáveis; Comando de atribuição; Conceito de tipos; Modularidade (subprogramas); E/S formatadas. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
COBOL (Common Business Oriented Language) Histórico COBOL (Common Business Oriented Language) Desenvolvida em 1959 pelo Departamento de Defesa dos EUA e fabricantes de computadores; Se tornou uma linguagem padrão para aplicações comerciais; Desenvolvimento independente de máquina. Contribuições: Código mais legível (“English-like”); Estrutura de Dados Heterogênea Registro (record) Estudo de Linguagens de Programação - Prof. Marcelo Marinho
ALGOL 60 (ALGorithmic Oriented Language) Histórico ALGOL 60 (ALGorithmic Oriented Language) Origem européia (1958); 1ª linguagem estruturada; Resolução de problemas científicos; Influenciou quase todas as suas sucessoras; Pouco usada comercialmente, pois não tem facilidades de E/S; Tornou-se padrão para a publicação de algoritmos. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Contribuições do ALGOL 60: Histórico Contribuições do ALGOL 60: Estrutura de blocos Escopo de variáveis e influência de comandos de controle Comandos de controle estruturados if-then-else Recursividade. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
LISP (LISt Processing) Histórico LISP (LISt Processing) Criada em 1960, por John McCartly (IA/MIT); 1ª linguagem funcional; Criada para pesquisa em IA; Muitos dialetos (linguagem não padronizada); Padrão informal: Common LISP, 1981. Contribuições Pioneira na computação simbólica ou não- numérica. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
APL (A Programming Language) Histórico APL (A Programming Language) Desenvolvida em 1960 por Kenneth Iverson (IBM); Utiliza notação matemática com operadores poderosos; Difícil implementação; Notação compacta para aplicações matemáticas; Modelo funcional (sua principal estrutura é o array). Estudo de Linguagens de Programação - Prof. Marcelo Marinho
BASIC (Beginners All-purpose Symbolic Instruction Code) Histórico BASIC (Beginners All-purpose Symbolic Instruction Code) Desenvolvida em 1965 por John Kemeny e Thomas Kurtz (Dartmouth College); LP de fácil aprendizado; Com o surgimento dos microcomputadores (70) tornou-se muito popular; Não contribuiu muito tecnologicamente. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Contribuições do BASIC: Histórico Contribuições do BASIC: Ofereceu ambiente de programação interativo. Programa BASIC: seqüência de instruções que são executadas na ordem em que são descritas a menos que um desvio seja indicado. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
PL/I (Programming Language I) Histórico PL/I (Programming Language I) Desenvolvida em meados da década de 60 pela IBM; Objetivo: incluir as características das LPs existentes numa única linguagem de propósito geral: Estrutura de bloco, de controle e recursividade (do ALGOL 60); Subprogramas e E/S formatadas (FORTRAN); Manipulação de arquivos e registros (COBOL); Alocação dinâmica de memória e estruturas encadeadas (LISP); Operações com arrays (APL); Linguagem complexa de difícil aprendizado. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Contribuições de PL/I: Histórico Contribuições de PL/I: Tratamento de interrupção; Multitarefa (concorrência). Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Histórico SIMULA 67 Contribuições: Baseada em ALGOL 60; Criada em 1967 por Ole Johan Dahl e Kristan Nygaard, na Noruega; Propósitos: descrição de sistemas e simulações. Contribuições: Conceito de classe: encapsulamento de dados e procedimentos. Predecessor às classes das linguagens orientadas a objeto. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Histórico ALGOL 68 Contribuições: Muito diferente de ALGOL 60; LP de propósito geral; Projetada para a comunicação de algoritmos e para execução em vários computadores; Sua difícil descrição resultou em baixa popularidade. Contribuições: Ortogonalidade: número de construtores básicos e um conjunto de regras para combiná-los relativamente pequeno. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Histórico PASCAL Criada por Niklaus Wirth, em 1969; Linguagem de fácil aprendizado e implementação; Suporta programação estruturada; Adequada para o ensino de programação; Influenciou quase todas as linguagens mais recentes. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Contribuições de Pascal: Histórico Contribuições de Pascal: Estruturas de controle flexíveis; Tipos definidos pelo usuário; Arquivos; Registros (Records); Conjuntos. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
PROLOG (PROgramming in LOGic) Histórico PROLOG (PROgramming in LOGic) Desenvolvida em 1972, em Marseille (França); Para aplicações de IA; Baseada em lógica formal; 1ª linguagem Lógica. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Histórico SMALL TALK Criada por Alan Kay da XEROX (Palo Alto – EUA), no início dos anos 1970; Possui ambiente de programação com menus pop-up, windows (janelas) e mouse; Paradigma Orientado a Objetos; Conceito de classe do SIMULA 67 mais herança e instanciação. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Contribuições de SMALL TALK : Histórico Contribuições de SMALL TALK : 1ª linguagem a utilizar o paradigma de programação OO; Introduz o conceito de LP extensível Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Histórico C Criada por Dennis Ritchie, nos laboratórios AT&T-Bell, em 1972; Padronizada pelo comitê ANSI-C em 1983; Linguagem de alto nível com facilidades para a programação em baixo nível; Gera código executável eficiente; Alta portabilidade; Grande conjunto de operadores. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Histórico MÓDULA 2 Criada por Niklaus Wirth no final dos anos 70; Linguagem de propósito geral; Baseada em melhorias no PASCAL; Desenvolvimento de software de grande porte; Também usada para ensinar programação. Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Histórico ADA Criada no início dos anos 70, pelo Departamento de Defesa dos EUA; Baseada em Pascal; Padronizada em 1983; Utiliza o conceito de classes do SIMULA 67; Tratamento de exceções de PL/I; Facilidades para o processamento concorrente; Para aplicações: Numéricas; Que envolvem concorrência; Que envolvem tempo real; Seu nome é uma homenagem à ADA Augusta, 1ª programadora (século 19). Estudo de Linguagens de Programação - Prof. Marcelo Marinho
Histórico C++ JAVA Desenvolvida em 1983 (AT&T); Linguagem Orientada a Objetos; Formadas pela linguagem C adicionada de um conjunto de instruções voltados à OO; Quem sabe programar em C conhece a maior parte de C++; JAVA Desenvolvida em 1994 pela Sun Microsystems; Conta com recursos para programação distribuída; Sintaxe parecida com C++; Linguagem híbrida muito utilizada na Internet Estudo de Linguagens de Programação - Prof. Marcelo Marinho