Académique Documents
Professionnel Documents
Culture Documents
Contexto
Cdigo fonte (macros)
Pr-processador
Assembly
Montador
Objeto
Linkeditor
Executvel
2
Pr processadores
Pre-Proc Tratamento pr-compilao Macros Cod Faz expanso de macros Expandido Dificuldade operacional -Manter o registro das linhas originais para que o compilador gere mensagens significativas Uso mais conhecido -Linguagem C
Compilao
Cada instruo de L1 substituda por um conjunto de instrues equivalentes de L0 Processador executa programa em L0 Todo programa em L0 carregado em memria e executado Programa pode ser traduzido uma nica vez e executado vrias vezes
4
Compiladores
Recebem entrada em alto nvel Traduzem todo cdigo para execuo posterior Converso e a execuo ocorrem em fases distintas Cada instruo do cdigo fonte pode gerar vrias instrues de mquina
Compiladores -Fases
Anlise(divide o programa fonte nas partes constituintes e cria uma representao intermediria dos mesmos) Ex.:
Trabalho 01 Aula 03
Faa uma pesquisa e conceitue a fase de Analise do Compilador, d exemplo dos codigos gerados por cada uma das analises;
Analise Lexica; Analise Sintatica; Analise Semantica;
Interpretao
Cada instruo de L1 substituda por um conjunto de instrues equivalentes de L0 Processador executa uma instruo de L1 (transformada para L0) antes de executar prxima instruo Cada instruo de L1, transformada para L0, carregada na memria e executada No criado um programa em L0. Programa deve ser novamente interpretado para ser executado
8
Interpretadores
Conversor on-line (incremental), onde a traduo e a execuo das instrues ocorrem passo a passo, a cada instruo Execuo simultnea leitura, logo aps a anlise Recebem como entrada arquivos texto contendo programas em linguagem assembly, linguagem de alto nvel, arquivos binrios com instrues de mquina e os executam diretamente OBS: Processadores so interpretadores implementados em hardware
9
Implementao Hbrida
Mescla compilao com interpretao Programas fonte so traduzidos para uma linguagem intermediria que interpretada Tem maior portabilidade que uma linguagem compilada So mais rpidas que uma linguagem interpretada Ex: Bytecode Java
10
Comparativo
Compilao Programas so traduzidos para linguagem de mquina e so executados diretamente no computador Envolve dois processos distintos: Traduo (compilao) e Execuo No existe acesso ao programa fonte na execuo
Interpretao O interpretador executa diretamente as instrues do programa fonte Execuo mais lenta, devido ao passo de decodificao da instruo de alto nvel tem acesso ao programa fonte, para depurao ou mesmo para alterar o cdigo sendo executado
11
Montadores
Traduo de uma linguagem de montagem (assembly) para cdigo de mquina. Em geral, no pode ser executado diretamente pela mquina, por conter referncias a sub-rotinas e dados especificados em outros arquivos Relao 1:1 com a linguagem de mquina dependente da arquitetura da mquina Uso de comandos -Endereamento simblico Programao difcil -Esforo 5x maior Maior performance
33% mais rpida Soluo crtica de sucesso
12
Ligadores
Programa que liga objetos gerados por um compilador ou montador formando o executvel
ele quem gera o executvel e no o compilador
Recebem como entrada arquivos objetos e geram como sada o programa final em linguagem de mquina Gera um programa executvel a partir de um ou mais arquivos objeto Resoluo das chamadas de funes atravs da unificao dos objetos num nico executvel
13
Empacotadores
Compacta um executvel e gera outro executvel auto extravel Packer muda a assinatura do executvel Possibilita criao de vrus com assinaturas diferentes Comprimem, cifram e ofuscam o executvel Dificultam a identificao do compilador usado por ferramentas adequadas Impossibilita a anlise esttica, pois o packer quem se torna o ator principal Decifragem sob demanda
14
Carregadores
Para executar um programa, um loader deve ser utilizado. O carregador , em geral, parte do sistema operacional Copia o arquivo em formato binrio para a memria
15
Carregadores -Tipos
Binrios / absolutos -programa que usa carregadores absolutos associado com localizaes especficas de memria, e por isso deve sempre ser carregado na mesma rea de memria (.COM) Relocveis-O programa executvel relocvel semelhante ao programa executvel absoluto, exceto que os endereos so todos relativos a zero (no so absolutos) (.EXE)
16
Esquema
17
Exerccios
18
7. Acerca dos conceitos de software bsico, julgue os itens que se seguem. [128] Em processos de compilao, a fase de anlise divida em duas etapas: anlise sinttica e anlise semntica. [129] A JVM (java virtual machine) exemplo de tradutor. [130] Montador um programa de computador que realiza a converso de uma linguagem de montagem (assembly) para cdigo de mquina.
25
correto o que consta APENAS em: a.I e II. b.II e III. c.I, II, III. d.I, II e IV. e.II, III e IV.
26
Gabarito
1.A 2.C 3.D 4.A 5.E 6.B 7.E, E, C 8.D 9.A 10.B
29