Influencias sobre o Projeto da Linguagem. Arquitetura do Computador A maioria das mais populares dos...
-
Upload
manoela-regueira-molinari -
Category
Documents
-
view
215 -
download
1
Transcript of Influencias sobre o Projeto da Linguagem. Arquitetura do Computador A maioria das mais populares dos...
![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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/1.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/2.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/3.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/4.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/5.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/6.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/7.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/8.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/9.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/10.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/11.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/12.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/13.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/14.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/15.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/16.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/17.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/18.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/19.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/20.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/21.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062819/570638651a28abb8239020f8/html5/thumbnails/22.jpg)
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