Dom - PowerPoint PPT Presentation

About This Presentation
Title:

Dom

Description:

Dom nios de Programa o Aplica es Cient ficas Aplica es Comerciais Intelig ncia Artificial Programa o de Sistemas Linguagens de Scripting – PowerPoint PPT presentation

Number of Views:77
Avg rating:3.0/5.0
Slides: 25
Provided by: FabioP
Category:
Tags: assembler | dom

less

Transcript and Presenter's Notes

Title: Dom


1
Domínios de Programação
  • Aplicações Científicas
  • Aplicações Comerciais
  • Inteligência Artificial
  • Programação de Sistemas
  • Linguagens de Scripting
  • Linguagens para Propósitos Especiais

2
Domínios de Programação Aplicações Científicas
  • Estruturas de dados simples matrizes
  • Operações aritméticas em ponto flutuante
  • FORTRAN, ALGOL 60
  • Nenhuma linguagem é significativamente melhor do
    que o FORTRAN até hoje

3
Domínios de Programação Aplicações Comerciais
  • Facilidade para produzir relatórios
  • Exemplo COBOL (60)
  • Há pouco desenvolvimento nas linguagens de
    aplicação comercial, além do que foi feito para
    COBOL (usado ainda hoje)

4
Domínios de Programação Inteligência Artificial
  • Computações simbólicas, e não numéricas
  • LISP
  • PROLOG

5
Domínios de Programação Programação de Sistemas
  • Desenvolvimento de software básico (sistemas
    operacionais)
  • Linguagens para programação de sistemas exigem
    execução rápida
  • PL/S (IBM), BLISS (Digital), Extended ALGOL
    (Burroughs)
  • Unix e C (poucas restrições de segurança)

6
Domínios de Programação Linguagens de Scripting
  • Script é uma lista de comandos em um arquivo,
    para serem executados em lote
  • sh
  • ksh (Bell Labs)
  • awk (Aho, Wienberger e Kernighan)
  • tcl
  • Perl

7
Critérios de Avaliação de Linguagens
  • Legibilidade
  • Facilidade de Escrita (writability)
  • Confiabilidade
  • Custo

8
Critérios de Avaliação de LinguagensLegibilidade
  • Simplicidade poucos componentes básicos, cuidado
    com a multiplicidade de recursos, overloading
    inteligente de operadores
  • Ortogonalidade conjunto consistente de regras
    para combinar construções primitivas, com poucas
    exceções
  • Instruções de controle
  • Tipos e estruturas de dados
  • Sintaxe

9
Critérios de Avaliação de Linguagens Facilidade
de escrita
  • Simplicidade grande número de construções
    diferentes leva a dificuldades para escrever
    programas
  • Suporte para abstração capacidade de definir
    estruturas/operações complexas ignorando
    detalhes. Abrstração pode ser em dados e em
    código.
  • Expressividade adequação das formas de
    especificar computações

10
Critérios de Avaliação de Linguagens
Confiabilidade
  • Verificação de tipos
  • Tratamento de exceções
  • Aliasing
  • Pouca legibilidade ou pouca facilidade de escrita
    tendem a gerar programas pouco confiáveis

11
Critérios de Avaliação de Linguagens Custo
  • Treinamento
  • Escrita de código
  • Compilação
  • Execução
  • Implementação
  • Manutenção
  • da má confiabilidade

12
Influências sobre o Projeto de Linguagens
  • Arquitetura dos computadores
  • Metodologias de programação ao longo da história

13
Influências sobre o Projeto de LinguagensArquitet
ura dos computadores
  • Últimos 40 anos imensa maioria das linguagens de
    programação foi projetada em função da
    arquitetura Von Neumann
  • As linguagens baseadas nesta arquitetura são
    denominadas linguagens imperativas

14
Influências sobre o Projeto de LinguagensArquitet
ura dos computadores
  • Modelo da arquitetura de Von Newmann

MEMÓRIA
resultados (piped)
instruções e dados (piped)
GARGALO de Von Newmann
ULA
UC
E/S
CPU
15
Influências sobre o Projeto de LinguagensArquitet
ura dos computadores
  • Execução de código numa máquina Von Newmann
    ciclo fetch-execute
  • Programas residem na memória mas são executados
    na CPU (cada instrução é transferida da memória
    para o processador)
  • Endereço da próxima instrução mantido num
    registro chamado program counter

16
Influências sobre o Projeto de LinguagensArquitet
ura dos computadores
  • EXECUÇÃO
  • inicialize o program counter
  • repeat forever
  • fetch
  • decode
  • execute

17
Influências sobre o Projeto de LinguagensMetodolo
gias de Programação
  • Final anos 60 Programação Estruturada
  • Anos 70 projeto top-down, refinamento,
    modularidade, verificação de tipos, mais
    instruções de controle
  • Final anos 70 abstração de dados
  • Anos 80 programação orientada a objetos
  • Anos 90 concorrência, internet

18
Categorias de Linguagens
  • Imperativas Pascal, C...
  • Ordem específica das instruções é importante
  • Orientadas a Objetos C, Delphi, Java...
  • Hierarquização, classificação, extrema
    modularização/abstração (código e dados)
  • Funcionais (LISP) e Lógicas (Prolog)
  • Baseadas na computação de funções ou regras de
    inferência. A recursão é um conceito natural
    nestas linguagens

19
Trade-offs no Projeto de Linguagens
  • Confiabilidade vs. Custo de manutenção
  • Expressividade vs. Legibilidade
  • Flexibilidade vs. Segurança

20
Métodos de Implementação
  • Compilação
  • Interpretação Pura
  • Sistemas híbridos

21
Interface de computadores virtuais
Comp. FORTRAN
Comp.Pascal
Comp. C
Sistema Operacional
Interp. LISP
Interpretador de Macroinstruções
Comp. Ada
Núcleo da Máquina
Interp. comandos SO
Assembler
...
22
O processo de compilação
Programa-fonte
alto nível
Analisador Léxico
tokens
Analisador Sintático
parse trees
Analisador Semântico Gerador de código
intermediário
Tabela de símbolos
Otimização
cód. intermediário
Gerador de código
ling. máquina - baixo nível
dados de entrada
Máquina
Resultados
23
Interpretação pura
  • Programas são interpretados por outro programa
    (interpretador), sem conversão
  • Interpretador simulador de software, máquina
    virtual cujas instruções são um programa em ling.
    alto nível
  • vantagem facilidade de depuração
  • desvantagem lentidão, muito espaço de memória
  • Exemplos Linguagens de scripting, LISP...

24
Sistemas Híbridos
  • Perl
  • Implementações iniciais de Java
  • código intermediário de Java código de bytes
  • portabilidade
  • cód. bytes interpretador Java Virtual Machine
  • hoje tradução do cód. bytes p/ cód. máquina
  • applets Java são baixados em código de bytes
Write a Comment
User Comments (0)
About PowerShow.com