View
215
Download
1
Category
Preview:
Citation preview
Influencias sobre o Projeto da Linguagem
Arquitetura do Computador
• A maioria das mais populares dos ultimos 40 anos foi projetada em função da arquitetura de Von Newman – Essas linguagens são chamadas de imperativas
• Recursos centrais: variáveis, as quais modelam as células de memória, as instruções de atribuição e a forma iterativa de repetição.
Arquitetura do computador
• A iteração é rapida nos computadores de Von Newman porque as instruções são armazenadas em celulas adjacentes da memória.
• Essa eficiência desencoraja o uso de recursão para repetição:– Linguagens funcionais
Metodologias de Programação
• As novas metodologias de desenvolvimento de software surgiram em consequencia das pesquisas da decada de 70
• As principais deficiencias descobertas: • Não verificação de tipos• Insuficiencia de instruções de controle
Verificação de Tipos
• Testar se existem erros de tipo em determinado programa, ou por meio de compilador ou durante a execução do programa.
• Uma vez que a verificação de tipos em tempo de execução é dispendiosa
• A verificação em tempo de compilação é mais desejavel
Verificação de Tipos
• Erros:– Na linguagem C original, o tipo de parametro real
em uma chamada a função não é verificado para determinar se seu tipo coincide com o do parametro formal correspondente na função.• Uma variavel do tipo int pode ser usada como um
parametro real em uma chamada a uma função que espera um tipo float como seu parametro formal, e nem o compilador nem o sistema em tempo de compilação detectarão a incoerencia.
Metodologias de Programação
• Iniciou-se projetos de linguagem onde há ênfase nos tipos abstratos de dados, nos anos 70.
• Nos anos 80, surgiu a orientação a objetos, onde alem da abstração dos dados há a encapsulamento, herança e vinculação de tipos dinamicos
Introdução: execução deprogramas
• Componentes: programa, dados,
computador• Objetivo: viabilizar a execução
de um programa fonte, juntamente com seus dados, em um computador para a obtenção dos resultados
• Problema: notação usada noprograma pode ser incompatívelcom o conjunto de instruçõesexecutáveis
Computador e linguagens
• Um computador pode ser representado por:• uma máquina virtual, capaz de executar operações maisabstratas (representadas através de uma linguagem de
programação)• uma máquina real, capaz de executar um determinado
conjunto de operações concretas (expressas em linguagem de máquina)
Linguagens e Máquinas Cada máquina representa um
conjunto integrado de estruturas de dados e algoritmos
Cada máquina é capaz de armazenar e executar programas em uma linguagem de programação L1, L2, L3,...Ln.
Linguagens e Máquinas
Máquina reais e máquinasvirtuais
Máquina real: conjunto de hardware e sistema operacional capaz de executar um conjunto próprio de instruções (plataforma de execução)
O elo de ligação entre a máquina abstrata e a máquina real é o processador da linguagem
Máquina reais e máquinasvirtuais
Processador da linguagem: programa que traduz as ações especificadas pelo programador usando a notação própria da linguagem em uma forma executável em um computador
Máquina abstrata (virtual): combinação de um computador e um processador de linguagem
Máquina reais e máquinasvirtuais
Preparação de programas
Programa Montador (assembler)
• Montadores aceitam como entrada um programa escrito em linguagem de montagem (assembler) e produzem código de máquina correspondente a cada instrução
• Sendo P1 o programa assembler e P0 o programa em linguagem de máquina, P1 e P0 devem ser funcionalmente equivalentes
Programa Compilador• Compiladores aceitam
como entrada um programa escrito em linguagem de programação e produzem um programa equivalente em outro código
Programa Compilador• Programa objeto:
linguagem de máquina, linguagem assembler ou linguagem intermediária
• Sendo P2 o programa fonte e P0 o programa objeto, P2 e P0 devem ser funcionalmente equivalentes
Compiladores x plataformas
Compilador PascalProgramas fonte de
usuários podem ser traduzidos para linguagem de máquina ou para P-code
Compilador PascalA versão em P-code deve
ser interpretada maior tempo de execução melhores diagnósticos de erros favorece o processo de alterações e testes permite a reexecução completa ou incremental dentro do próprio ambiente de desenvolvimento
Interpretador• Interpretador: a partir de um• programa fonte escrito em uma• linguagem de programação ou• código intermediário e mais o• conjunto de dados de entrada• exigidos pelo programa realiza o• processo de execução• Pode produzir código
executável,• mas não produz programa
objeto• persistente• Exemplos: Basic, LISP,
Smalltalk ejava
Recommended