influencias sobre o projeto da linguagem. arquitetura do computador a maioria das mais populares dos...

22
Influencias sobre o Projeto da Linguagem

Upload: manoela-regueira-molinari

Post on 07-Apr-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 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

Influencias sobre o Projeto da Linguagem

Page 2: 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

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.

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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.

Page 7: 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

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

Page 8: 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

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

Page 9: 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

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)

Page 10: 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

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.

Page 11: 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

Linguagens e Máquinas

Page 12: 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

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

Page 13: 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

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

Page 14: 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

Máquina reais e máquinasvirtuais

Page 15: 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

Preparação de programas

Page 16: 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

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

Page 17: 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

Programa Compilador• Compiladores aceitam

como entrada um programa escrito em linguagem de programação e produzem um programa equivalente em outro código

Page 18: 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

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

Page 19: 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

Compiladores x plataformas

Page 20: 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

Compilador PascalProgramas fonte de

usuários podem ser traduzidos para linguagem de máquina ou para P-code

Page 21: 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

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

Page 22: 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

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