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

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

Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.

Apresentações semelhantes


Apresentação em tema: "Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação."— Transcrição da apresentação:

1 Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

2 Introdução

3 Sumário Motivos para estudar Conceitos de Linguagens de Programação Domínios da Programação Critérios de Avaliação de Linguagens Trade-offs Influências sobre o Projeto da Linguagem Categorias de linguagens Métodos de Implementação

4 Motivos para estudar CLPs Aumento da capacidade de expressar idéias; Conhecer os recursos e limites das linguagens nos permite otimizar o uso da mesma; Maior conhecimento para a escolha de linguagens apropriadas; Muitos programadores aprendem por conta... Conhecer os diferentes recursos da diferentes linguagens facilita o processo de escolha de uma linguagem compatível com o nível de abstração exigido pelo problema Capacidade aumentada para aprender novas linguagens;

5 Domínios da programação Diferentes empregos da computação Áreas de uso Aplicações Científicas O grande motivo da computação; Estruturas de dados simples, laços de contagem e seleções; Fortran e Algol 60, linguagem assembly; Aplicações Comerciais Final década de 50; Geração de relatórios, armazenamento de números decimais

6 Domínios da programação Inteligência Artificial Utilização de computação simbólica em vez de numérica; LISP (1959) e Prolog (1970) Programação de Sistemas Sistema Operacional (software básico) Algol e C

7 Domínios da programação Linguagem de scripting Listas de comandos a serem executados AWK, Perl, Python Programação Web Popularização da Internet Mudou completamente a forma de pensar e desenvolver sistemas Inicio como simples páginas Sistemas completos Linguagens server side x client side PHP JavaScript Linguagens compiladas x interpretadas x hibridas

8 Critérios de avaliação da linguagem Legibilidade Capacidade de escrita (Writability) Confiabilidade Custo

9 Característica LegibilidadeWritabilityConfiabilidade Simplicidade/Ortogonalidade XXX Estruturas de Controle XXX Tipos de Dados e Estruturas XXX Projeto da Sintaxe XXX Suporte para Abstração XX Expressividade XX Verificação de Tipos X Manipulação de Excessões X Aliasing X Critérios de avaliação da linguagem

10 Trade-offs Critérios Conflitantes:  confiabilidade X custo de execução Verificação dinâmica de tipos; Índices de arrays  expressividade X legibilidade conjunto poderoso de operadores leva a expressões matemáticas concisas mas pouco legíveis  flexibilidade X segurança uniões em C; registros variantes em Pascal

11 Categorias de linguagens Imperativas: utilizam a variável como elemento de abstração da célula de memória; (C, Java) Funcionais: aplicação de funções a determinados parâmetros; pode ser feita sem vinculação de tipos, sem atribuições e sem iteração - somente recursão; (LISP) Lógicas: baseadas em regras; não há um fluxo particular de execução; Aplicam-se um conjunto de regras a um conjunto de dados através de uma função de inferência obtendo-se novos dados; (Prolog) de Marcação: não especificam computações, mas descrevem a aparência geral de documentos (html, latex)

12 Compilador C Compilador Pascal Compilador Fortran Compilador ADA Interpretador LISP Assembler Interpretador de Comandos do S.O. Sistema Operacional Interpretador do Conjunto de Instruções Núcleo da Máquina Computador Virtual C Computador Virtual Fortran Computador Virtual ADA Computador Virtual LISP Computador Virtual Assembly... Computador Virtual Pascal Computadores virtuais

13 Métodos de implementação 1) Compilação Traduz um programa de alto-nível para o código de máquina Tradução lenta Execução rápida Exemplos: C, Cobol, Ada, Pascal...

14 Programa Fonte Analisador léxico Analisador sintático Gerador de Código Intermediário (e analisador sintático) Gerador de Código Otimização Computador Tabela de símbolos Unidades Léxicas Árvores de Análise (parse trees) Código Intermediário Linguagem de Máquina Resultados (Opcional) Dados de Entrada Métodos de implementação (compilação)

15 2) Interpretação Pura Sem tradução Execução lenta Atualmente raras (LISP, html, scripts UNIX, PHP) Figura descritiva: Métodos de implementação Programa Fonte Dados de Entrada Resultados Interpretador

16 3) Sistemas de implementação Hibridos Baixo custo de tradução Velocidade de execução média Ex.: Perl, Java Programa Fonte Analisador léxico Analisador sintático Gerador de Código Intermediário (e analisador sintático) Unidades Léxicas Árvores de Análise (parse trees) Código Intermediário Dados de Entrada Resultados Interpretador Métodos de implementação

17 Metodologias Metodologias de Programação Ausência de metodologia Programação estruturada Década de 70; Eliminação de gotos; Metodologias de projeto top-down e botton-up; Orientação aos processos; Algol, Pascal, C.

18 Programação orientada a objeto Década de 80; Abstração de dados, herança, encapsulamento; vinculação dinâmica de tipos; Smalltalk; C++; Java. Programação Orientada a Processos concorrência; suporte em ADA; Java Metodologias

19 Programação orientada a eventos Diferente de programas tradicionais que seguem um fluxo de controle padronizado, o controle de fluxo de programas orientados a evento são guiados por indicações externas, chamadas eventos. Sua aplicação é grande no desenvolvimento de sistemas de interface com o usuário Diferente de aguardar por um comando completo que processa a informação, o sistema em tal paradigma é programado em sua base em um laco de repeticao de eventos, que recebem repetidamente informação para processar e disparam uma função de resposta de acordo com o evento. Metodologias


Carregar ppt "Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação."

Apresentações semelhantes


Anúncios Google