A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Paradigmas de Linguagens de Programação

Apresentações semelhantes


Apresentação em tema: "Paradigmas de Linguagens de Programação"— Transcrição da apresentação:

1 Paradigmas de Linguagens de Programação
Universidade Estadual de Santa Catarina Departamento de Ciência da Computação Paradigmas de Linguagens de Programação Claudio Cesar de Sá

2 Porquê estudar linguagens de programação?
Identificar necessidades de projetos Ferramentas apropriadas Visualizar alternativas Ampliar uma visão de possibilidades ...

3 Como definir linguagens de programação?
Devido a sua existência temporal, uma época. Geração na história evolutiva. Devido um paradigma (conjunto de conceitos que referenciam um sistema), tanto abstrato/lógico como em hardware Devido ao seu propósito, destino de uso Devido o escopo de variáveis e funções, etc etc.....

4 Categoria de Linguagens
IMPERATIVAS: C, Basic, Assembler, Fortran, Cobol, FUNCIONAIS: Lisp, Miranda, Scheme, Comoom Lisp, Haskell, ML,... LÓGICAS: Prolog e derivados ORIENTADAS A OBETOS: Smalltalk, ... HÍBRIDAS: C++ Builder, Java, Delphi, Kylix, ... ESPECÍFICAS: GPSS, Simula, Auto-Lisp, ... BASEADAS EM REGRAS de PRODUÇÃO: CLIPS, Jess, ... Shell de SE’s... SEBESTA ,Robert W. Concepts of Programming Languages. 4 ed. Addison Wesley, 1999.

5 Geração das Linguagens
1a geração 0s e 1s 2a geração ASSEMBLY: ADD x,y ... 3a geração IMPERATIVAS((não)estruturadas,modulares) 4a geração 4GL (SQL, CSP) OO’s. híbridas, etc. 5a geração LÓGICAS e FUNCIONAIS 6 a geração

6 Evolução das Linguagens
As primeiras linguagens de programação (LPs de 1a geração) eram aquelas feitas em codificação binária, diretamente no hardware: Utilização de linguagem de máquina (0’s e 1’s). Execução direta pela máquina, sem tradução. Linguagem escrita do acordo com as características especiais de um determinado processador. Linguagem totalmente dependente do hardware.

7 Evolução das Linguagens
As linguagens de programação de segunda geração (LPs de 2a geração) foram chamadas de LP´s de baixo nível: Ainda dependentes do hardware. Utilização de abreviações simples para instruções de programa, assim como números na familiar base-10 (decimal). As abreviações são chamadas mnemônicos. Por exemplo, o mnemônico COMPARE A, B diz para o processador comparar os dados armazenados nas posições A e B da memória. Código-fonte traduzido em linguagem de máquina por um montador. Exemplo: Linguagens de montagem (ASSEMBLY).

8 Evolução das Linguagens
As linguagens da terceira geração (LPs de 3a geração) são chamadas de LP´s modernas ou LP´s de alto nível: 1as LP´s de 3a geração Não-estruturadas 2as LP´s de 3a geração Estruturadas ou procedimentais 3as LPs de 3a geração Modulares Em paralelo... Funcionais e lógicas

9 Evolução das Linguagens
1as LP´s de 3a geração (não-estruturadas) Código-fonte traduzido (compilado ou interpretado). programador pode escrever uma instrução utilizando linguagem pseudo-natural: palavras em inglês, como PRINT ou DISPLAY. Código-fonte traduzido para um número muito maior de linhas em código assembly ou código de máquina. Todo código escrito em um único programa. Década de 50. Exemplo: Linguagens não-estruturadas (FORTRAN, COBOL, BASIC).

10 Programação Não-Estruturada
Paradigmas de Programação Programação Não-Estruturada Programa Programa Principal Dados

11 Evolução das Linguagens
1as LP´s de 3a geração (não-estruturadas) “SPAGHETTI CODE” e a grande CRISE DO SOFTWARE instruções GOTO Em um programa longo, o resultado do uso de muitas instruções GOTO era o spaghetti code, isto é, programas que eram difíceis de ler e, por conseqüência, tinham maior chance de apresentar erros. A tentativa de criar programas mais complexos e maiores conduziu a crise do software, na década de 1960.

12 Evolução das Linguagens
1as LP´s de 3a geração (não-estruturadas) CRISE DO SOFTWARE Os programas: não ficavam prontos na hora; excediam seus orçamentos; continham erros demais e; não satisfaziam aos clientes. Um estudo de meados da década de 60 revelou que as programadores COBOL eram capazes de produzir, em média, somente 10 linhas de código livres de erro dia de trabalho.

13 Evolução das Linguagens
1as LP´s de 3a geração (não-estruturadas) CRISE DO SOFTWARE 1a SOLUÇÃO PROGRAMAÇÃO ESTRUTURADA estruturas de controle procedimentos

14 Evolução das Linguagens
2as LP´s de 3a geração (estruturadas ou procedimentais) trouxeram um novo tipo de abstração: os procedimentos (procedures). foram inventados vários mecanismos de passagem de parâmetros. foi estabelecido as fundamentações da programação estruturada. Utilização de elementos lógicos denominados estruturas de controle: IF-THEN-ELSE, FOR, WHILE, REPEAT, etc. surgiram os métodos de projeto estruturado. Final da década de 50. Exemplo: Linguagens estruturadas (ALGOL, ADA, SIMULA, PASCAL, C).

15 Paradigmas de Programação
Programação Estruturada ou Procedimental Programa Programa Principal Dados Proc 1 Proc 2 Proc 3

16 Evolução das Linguagens
3as LP´s de 3a geração (modulares) Surgiu a compilação em módulos em separado. uma forma de manter dados e subprogramas juntos. linguagens com poucas regras que requeriam consistência semântica entre as interfaces dos módulos. Princípios da programação modular: ocultamento de informações (encapsulamento). reaproveitamento de código (reusabilidade). Década de 70. Exemplo: Linguagens modulares (MODULA-2).

17 Programação Modular Paradigmas de Programação Programa
Programa Principal Dados módulo 1 Dados + Dados1 módulo 2 Dados + Dados2 Proc 1 Proc 2 Proc 3 Programa

18 Evolução das Linguagens
3as LP´s de 3a geração (modulares) PROBLEMAS linguagens não possuíam suporte adequado para abstrações de dados e tipagem forte e com isso os erros eram detectados somente durante a fase de execução do programa. SOLUÇÃO PROGRAMAÇÃO ORIENTADA A OBJETOS

19 Evolução das Linguagens
Outras LP´s de 3a geração (funcionais) Pesquisas em IA (Inteligência Artificial) necessitava de LPs: processasse dados em listas (ao invés de arrays). Computação simbólica (ao invés de numérica) Características: sintaxe baseada no lambda-calculus. controle via recursão e expressões condicionais. Década de 60. Exemplo: Linguagens funcionais (LISP-LISt Processing Language, ML-Meta Language, Miranda, Haskell).

20 Evolução das Linguagens
Outras LP´s de 3a geração (lógicas) programação em lógica. conversacional (interpretada). Programa consiste em: declaração: fatos sobre os objetos; definição: regras e relacionamentos; pergunta: objeto e relacionamento. Popularidade: IA, Computação Simbólica e BD Relacional. Década de 70. Exemplo: Linguagens lógicas (PROLOG e assemelhados).

21 Evolução das Linguagens
Vários tipos de linguagens são encontradas na literatura como sendo de quarta geração (LPs de 4a geração - 4GLs): geradores de relatório (linguagens para imprimir relatórios de banco de dados) e; linguagens de consulta (linguagens para obter as informações de bancos de dados). Não são LP´s de propósito geral. Exemplo: Linguagens de 4GLs (CSP, SQL).

22 Evolução das Linguagens
Linguagens Orientadas a Objetos ou Baseadas em Objetos diminuição do gap entre mundo real e solução computacional. programa = dados + procedimentos sobre os dados Principais características: classes&objetos, TADs, encapsulamento, herança e polimorfismo. programação se dá pela comunicação entre objetos. Pouco ou nenhum dado global. Exemplo: Linguagens OO (SMALTALK, SIMULA-67, EIFFEL, Modula-3,). Linguagens BO (C++, Object Pascal, JAVA).

23 Paradigmas de Programação
Programação Orientada por Objetos Objeto 1 Dados Objeto 2 Dados Objeto 3 Dados Objeto 4 Dados

24 Paradigmas de Programação
NÃO-ESTRUTURADO ESTRUTURADO MODULAR ORIENTADO A OBJETOS FUNCIONAL LÓGICO


Carregar ppt "Paradigmas de Linguagens de Programação"

Apresentações semelhantes


Anúncios Google