COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais Aula II
Introdução a Algoritmos
gerador de código intermediário
Arquitetura de Computadores
Introdução à Ciência da Computação Linguagens de Programação.
Algoritmo Exemplo: faça um algoritmo para tocar todas as músicas de um cd. Após o usuário apertar o play Algoritmo Para as músicas de 1 até última música.
Arquitetura e organização de computadores.
Linguagem de Montagem Visão geral.
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
Introdução a Informática
INTRODUÇÃO À PROGRAMAÇÃO
Ferramentas Programação
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Linguagens de Programação
INTRODUÇÃO À COMPUTAÇÃO
Prof. Msc. Raul Paradeda Aula 2 Introdução
O Portal do Estudante de Computação
Professor Fernando Luís
Paradigmas de programação
Lógica de Programação UNIDADE 1 – Introdução a) Computador
Sistemas Operacionais
JAVA: Conceitos Iniciais
Sistemas Operacionais
PROGRAMAÇÃO I UNIDADE 1.
Representação de Instruções
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
PCI- Introdução à Computação
Introdução a Programação
Sistemas Operacionais
Laboratório I Mateus Raeder Material baseado nos originais da
Arquitetura de computadores
História dos computadores e da programação
Organização e Arquitetura de Computadores
Geração de Código aula-12-geração-de-código.pdf.
Execução de programas Cap. VIII.
3/4/2015 Prof. Msc George Cabral Bacharelado em Sistema de Informação Ambientes de Desenvolvimento de Software.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Projeto de Linguagens de Programação
Processos.
Zeque - Grad. CC1 Sistemas Operacionais Curso de Ciência da Computação da UFPE Prof. José Queiroz - ZEQUE.
Introdução O que se espera de um sistema de computação?
Algoritmos e Estrutura de Dados I
Back-End Compilação aula-11-back-end.pdf.
Algoritmos e Programação I
Fundamentos de linguagens de programação
Software Básico Introdução à Organização de Computadores Capítulo 1 Mitsuo Takaki
Introdução à Computação - Jorge Macêdo1 ICC – Software Jorge Macêdo.
Algoritmos e Programação MC102
INTRODUÇÃO À INFORMÁTICA Prof. Msc. Rafael Robson Negrão 1 Universidade Estadual de Londrina Centro de Ciências Exatas Departamento de Computação INTRODUÇÃO.
Linguagens de Programação
Introdução aos Sistemas Operacionais
Elementos de Informática
SISTEMAS DE INFORMAÇÃO
Introdução a linguagem de Programação Java. Linguagens de Programação Linguagens de máquina(muito difíceis de usar e compreender) – Comanda ações do computador.
PROGRAMAÇÃO II – PARTE 1 Profa. Maria Augusta Constante Puget.
Linguagem de Programação I PARTE i
Sistemas Operacionais
Introdução à lógica de programação
Ciência da Computação I
Curso Engenharia Química Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores.
Influencias sobre o Projeto da Linguagem
LÓGICA DE PROGRAMAÇÃO Curso: Técnico em Informática Professor: Ronaldo Disciplina: Lógica de Programação.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Capítulo 4 Estrutura do Sistema Operacional
Transcrição da apresentação:

COMPILADORES 02 Prof. Marcos

COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:

COMPILADORES Do Programa à Execução A UCP (ou CPU) contém um conjunto relativamente pequeno de instruções que é capaz de executar. Cada processador contém um conjunto diferente de instruções, apesar de similaridadeses entre si. As instruções que o processador executa são buscadas da memória.

COMPILADORES Do Programa à Execução Essas instruções podem ser desde operações matemáticas a interações com os dispositivos de entrada e saída. Chamamos de PROGRAMA/CLASSE um conjunto de instruções que será executado pelo processador em uma determinada seqüência. Esse programa leva o computador a executar alguma tarefa.

COMPILADORES Do Programa à Execução Um programa nada mais é que um tipo de algoritmo.

COMPILADORES Do Programa à Execução Um algoritmo é uma seqüência de passos bem definida que resolve determinado problema, através da transformação de dados iniciais na resposta desejada, devendo ser:  Finito;  Passos bem definidos;  Eficaz;  Possuir uma entrada;  Produzir uma saída ou resultado.

COMPILADORES Do Programa à Execução Algoritmo (Nome-do-Algoritmo); Declaração de constantes e variáveis; Início Atribuições Comandos de E/S Estruturas de controle Seleção Repetição Fim.

COMPILADORES Do Programa à Execução Para possibilitar programação em larga escala, é necessária a criação de um código que relacionasse a linguagem de máquina a uma linguagem mais fácil de ser compreendida. Para que um programa escrito na linguagem de programação de alto nível (fonte) possa ser executado, é necessário que seu código seja traduzido para o código de máquina.

COMPILADORES Do Programa à Execução O compilador, a partir do código em linguagem de alto nível, chamado de código-fonte, gera um arquivo com o código em linguagem de máquina, conhecido como códigoobjeto. Esse código-objeto fica em disco e só é carregado em memória no momento da execução.

COMPILADORES Do Programa à Execução O interpretador faz o mesmo trabalho, porém não gera o arquivo em código-objeto. As instruções são traduzidas para linguagem de máquina em tempo de execução, instrução a instrução.

COMPILADORES Do Programa à Execução SÍNTESE ANÁLISE Programa Fonte Programa Objeto.exe Analisador Lerxico Analisador Sintático Analisador Semântico Ger Codigo Intermed Otimizador de Código Ger Codigo Objeto Atendimento a Erros

COMPILADORES Do Programa à Execução A introdução de linguagens de alto nível como Pascal, C, C++, Cobol, C#, Java,... entre outras, aumentou a produtividade dos programadores, permitindo que programas mais complexos e com mais interfaces gráficas fossem escritos. Além disso, os códigos tendem à portabilidade, ou seja, independentes da plataforma, não necessitando novas compilações do código-fonte.

COMPILADORES Do Programa à Execução A execução de determinadas operações em linguagem de máquina pode ser extremamente Complexa (exemplo: operações interface com os dispositivos de entrada e saída). Esse tipo de operação não é importante apenas em linguagens de programação. Este é um dos motivos pelos quais os sistemas operacionais são construídos.

COMPILADORES Do Programa à Execução Os Sistemas Operacionais também fornecem uma interface para que os programas possam utilizar as chamadas de sistema, ou system calls, e o conjunto de operações disponibilizadas são as bibliotecas do sistema operacional. Os compiladores utilizam essas interfaces em vez de implementar as operações complexas por si mesmos.

COMPILADORES Do Programa à Execução Quando o compilador encontra chamadas ao sistema operacional no código-fonte em linguagem de alto nível, transforma-as em referências “não resolvidas” no código-objeto. Para que esse código possa ser executado, precisa ser ligado ao código. Esta é a segunda etapa da compilação e ´c conhecido como ligação do código ou linkedição.

COMPILADORES Do Programa à Execução

COMPILADORES Do Programa à Execução Um código-objeto compilado em um sistema operacional não poderá ser executado em outro sistema operacional. Para que um programa funcione em outro sistemas operacional, o código-fonte deverá ser compilado neste sistema operacional.

COMPILADORES Do Programa à Execução A linguagem Java tem uma arquitetura diferente, o que fornece mais portabilidade. A compilação não gera código executável, em vez disso, gera um código “pseudo-executável”, chamado bytecode. Esse código é uma espécie de código de baixo nível que, porém, não é uma linguagem de máquina. Para que esse código possa ser executado em sistema operacional, é necessário que o software esteja instalado (JVM).

COMPILADORES Do Programa à Execução

COMPILADORES Do Programa à Execução DÚVIDAS ???