Zusammenfassung der Ressource
Mecanismos de Conversões de
linguagens
- Pré Processador
- Tratamento pré-compilação
- Expansão de macros
- Dificuldade
- Manter registro das linhas originais
- Gerar mensagens significantes
- Uso mais conhecido
- Linguagem C
- Nem toda linguagem suporta
- Montador
- Traduz linguagem de
montagem para código
de máquina
- NÃO Pode ser executado direto pela máquina
- É dependente da arquitetura da máquina
- Uso de comandos -
Endereçamento Simbólico
- Relação 1:1 com a linguagem de máquina
- Compilador
- Recebe entrada em alto nível
- Conversão e a execução em fases distintas
- Cada instrução do código fonte pode
gerar várias instruções de máquina
- Fases
- Análise
- Divide o programa fonte nas
partes constituintes e cria uma
representação intermediária
dos mesmos
- Léxica (Tokens)
- Sintática (Árvore Sintática)
- Semântica (incoerência semântica)
- Síntese
- Constrói o programa
alvo desejado a partir da
representação
intermediária
- Geração de código intermediário
- Otimização do Código
- Geração do Código
- Interpretadores
- Tradução e a execução das
instruções ocorrem passo a
passo, a cada instrução
- Execução simultânea à leitura, logo após a análise
- Recebem
- Programas em linguagens assembly
- Linguagens de alto nível
- Arquivos Binários com inst. de máquina
- Processadores são
interpretadores implementados
em Hardware
- Ligador
- Gera o executável
- Gera um programa
executável a partir de um
ou mais arquivos objetos
- Resolução das chamadas de
funções através da unificação
dos objetos num único
executátvel
- Empacotador
- Compacta um
executável e gera
outro executável auto
extraível
- Possibilita criação de vírus
com assinaturas diferentes
- Comprimem, cifram e
ofuscam o executável
- Dificultam a identificação
do compilador usado por
ferramentas adequadas
- Impossibilita a análise estática,
pois o packer é quem se torna o
ator principal
- Decifragem sobre demanda
- Carregador
- Em geral é parte do S.O.
- Copia o arquivo em
formato binário para
a memória
- Tipos
- Binários/Absolutos
- É associado com localização
específica na memória
- Deve ser carregado na
mesma área de memória
- EX.: .com
- Relocáveis
- Iguais aos absolutos
- Exceção
- Os endereços são
todos relativos a zero
- EX.: .exe
- Implementação Híbrida
- Mescla compilação
com interpretação
- Programas fontes são
traduzidos para uma
linguagem intermediária
que é interpretada
- Tem maior portabilidade
que uma linguagem
compilada
- São mais rápidas que um
linguagem interpretada
- Bytecode JAVA