Métodos de implementação de linguagens. Kellen Pinagé

Documentos relacionados
Conceitos de Linguagens de Programação

Linguagens de Programação Classificação

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Programação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR

1.1 Linguagens de Programação

Sistema Computacional

Paradigmas de Linguagem de Programação

Introdução à Computação

Introdução à Computação

Algoritmos e Programação

Capítulo 1. Aspectos Preliminares

Linguagens de Programação

Algoritmos e Programação

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Desenvolvimento de Aplicações Desktop

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.

EA876 - Introdução a Software de Sistema

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Algoritmos e Programação

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Introdução à plataforma Java

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Introdução à Computação

Introdução à Programação de Computadores Fabricação Mecânica

Introdução à Computação: Máquinas Multiníveis

Informações de Impressão

16. Compilação no Linux

Introdução ao Python. Programa Computacional

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Compiladores. Introdução

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Fundamentos de Sistemas Operacionais

Noções de compilação

Noções de compilação

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

INFORMÁTICA: Informação automática

Programação Estruturada Aula - Introdução a Linguagem de Programação

FACULDADE ZACARIAS DE GÓES SISTEMAS DE INFORMAÇÃO ADRIEL ALMEIDA CAFÉ PROCESSO DE COMPILAÇÃO

Infraestrutura de Hardware. Funcionamento de um Computador

INE5421 LINGUAGENS FORMAIS E COMPILADORES

3. Linguagem de Programação C

Introdução a Ciência da Computação

Programação de Computadores

Fabiano Moreira.

Noções de sistemas de computação

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Algoritmos Computacionais

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

2 Paradigmas de linguagens de programação João B. Rocha- Junior. As linguagens evoluem com o passar do tempo

Linguagens de Programação

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Fundamentos de Programação 1

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

COMPILAÇÃO. Ricardo José Cabeça de Souza

Conceitos Básicos. Fundamentos de Programação de Computadores

As fases de um compilador

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

CP Compiladores I Prof. Msc.. Carlos de Salles

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Programação de Computadores

ARQUITETURA DE COMPUTADORES

Estruturas de Sistemas Operacionais

Compiladores. Introdução à Compiladores

Estrutura do SO. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação. Prof. Bruno Moreno

Projeto de Compiladores

Objetivos. Responder o que é Java; Mostrar as vantagens e desvantagens do Java; Compilar e executar um programa simples.

Paradigmas de Programação

As fases de um compilador

Projeto Lógico de Computadores. Profa. MSc. Carolina Melo Santana

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

AULA 1 INTRODUÇÃO AO JAVA

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

Linguagens Computacionais (Conceitos Básicos)

ATIVIDADE DE ESTUDO 03 FUNDAMENTOS E ARQUITETURA DE COMPUTADORES 2017A1

CP Introdução à Informática Prof. Msc. Carlos de Salles

Aula 1 Java Prof. Dr. Sylvio Barbon Junior

PROGRAMAÇÃO I. Introdução

Programação de Computadores

CAP. VII GERAÇÃO DE CÓDIGO

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Autômatos e Linguagens

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Introdução à Computação Parte 2

Revisão NT Editora e Figuramundo. Projeto Gráfico NT Editora. Editoração Eletrônica NT Editora e Figuramundo. Capa NT Editora

Sistemas Operacionais

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

Introdução. (Aula 2) Organização Estruturada de Computadores

Projeto de Compiladores

Introdução à Programação

Transcrição:

Métodos de implementação de linguagens Kellen Pinagé

Sumário Métodos de implementação de linguagens Compilação Interpretação pura Híbrido

Métodos de implementação de linguagens Principais componentes de um computador: memória interna e processador Memória interna usada para armazenar programas e dados Processador conjunto de circuitos que garante a realização de um conjunto de operações primitivas, ou de instruções de máquina. Linguagem de máquina do computador conjunto de macroinstruções

Métodos de implementação de Arquitetura (resumida) linguagens Memória (armazena instruções e dados) resultado das operações instruções Processador

Métodos de implementação de linguagens Sistema operacional - um grande conjunto de programas Fornece primitivas de nível mais alto do que as linguagens de máquina Gerenciamento de recurso do sistema Operações de entrada e saída Gerenciamento de arquivos Outras... Sistemas de implementação de linguagens se comunicam com o sistema operacional

Métodos de implementação de Camadas linguagens Compilador C Compilador Ada Sistema Operacional Interpretador LISP Interpretador de macroinstruções

Métodos de implementação de linguagens Um programa escrito em uma linguagem de programação precisa ser traduzido para a linguagem de máquina para ser executado Necessário um programa (ou conjunto de programas) que receba como entrada o código-fonte e gere o código traduzido Três métodos gerais de implementação de linguagens de programação Compilação Interpretação pura Híbrido

Compilação O processo de compilação efetua a tradução integral do programa fonte para o código de máquina Uma vez traduzido, o programa em linguagem de máquina pode ser executado diretamente Fonte Compilação Linguagem de máquina Execução

Compilação Esse método tem a vantagem de uma execução de programa muito rápida Não necessita fazer qualquer tradução durante a execução Boa parte das verificações de erros já pode ser efetuada durante a tradução O tradutor tem mais liberdade para realizar otimizações na geração do código executável Requer apenas o código executável para que o programa rode

Desvantagens Compilação Não portabilidade do código executável para máquinas com arquitetura diferenciada daquela na qual ele foi compilado Ex.: um programa em C compilado sobre o Linux não é executado sobre o Windows e vice-versa Depuração Não guarda referências ao texto do código-fonte sem indicação da variável envolvida no erro ou da linha correspondente Obs: Existem sistemas de desenvolvimento de programas que permitem a depuração de programas compilados

Interpretação pura No processo de interpretação pura, um programa interpretado age como um simulador de um computador virtual que entende as instruções da linguagem de programação Cada instrução do fonte é traduzida para a linguagem de máquina quando necessita ser executada Imediatamente após a tradução, o código é executado Tradução e execução podem ser vistas como um processo único

Interpretação pura Fonte Linguagem de máquina Interpretação Execução

Vantagem Interpretação pura Facilidade de depuração, pois as mensagens de erro podem se referir diretamente ao código-fonte Desvantagem Execução muito mais lenta Necessidade de o interpretador decodificar comandos complexos de uma linguagem de alto nível, verificar erros do programa e gerar código em linguagem de máquina durante a própria execução do programa Exemplos: LISP, APL, JavaScript

Híbrido Processo que combina tanto a execução eficiente quanto a portabilidade de programas pela aplicação combinada dos dois métodos anteriores Existência de um código intermediário mais fácil de ser interpretado e, ao mesmo tempo, não específico de uma plataforma Dividido em duas etapas: compilação para um código intermediário e interpretação desse código

Híbrido Fonte Compilação Código intermediário Linguagem de máquina Interpretação Execução

Híbrido Embora a execução seja mais lenta que o código compilado, a interpretação do código intermediário é muito mais rápida que a interpretação pura do código-fonte Instruções do código intermediário são muito mais simples que as do código-fonte Maior parte das verificações de erro é realizada já na etapa de compilação Como o código intermediário não é específico para uma plataforma, os programas já compilados podem ser portados para diferentes plataformas, bastando que exista um interpretador do código intermediário instalado

Exemplo: Java Híbrido Código intermediário é chamada de bytecode O interpretador de bytecode é a JVM (Java Virtual Machine) Cada plataforma necessita possuir sua própria JVM para que o programa em bytecode possa ser executado

Bibliografia SEBESTA, R. W. Conceitos de Linguagens de Programação. 5ª. Edição. Editora Bookman, 2003. VAREJÃO, Flávio. Linguagem de Programação. Editora Campus. 2004.