Assembly 02
Compilação Æ Ligação Æ Execução
Assembler Æ Código Objeto Æ Ligador Æ Carregador
Este processo não é a única forma de execução de um arquivo i Æ Interpretação
I t t ã
Interpretação p ç também p possui três fases distintas de
Compilação Æ Ligação Æ Execução, mas comando por comando em tempo de execução
Não são produzidos códigos intermediários (.asm/.o)
Cada comando é lido lido, verificado verificado, convertido em código executável e imediatamente executado, antes que o comando seguinte seja sequer lido
Exemplos:
Linguagens g g como HTML, BASIC, Bash, Perl, PHP, Python, y Euphoria, Forth, JavaScript, Logo, Lisp, Haskell ...
Linguagens
Li
d programação de ã d de usuário: á i tais t i como d das planilhas Excel, o Word Basic (linguagem de construção de
Macros do Word), o Access, etc...
Tempo de execução:
Interpretação execução comando por comando
Compilação o tempo de execução do programa é reduzido, compilação e ligação foram previamente cumpridos
Consumo de memória:
O interpretador é um programa grande e permanece na memória durante todo o tempo que durar a execução
O compilador é carregado e fica na memória apenas durante o tempo de compilação, depois é descarregado
Repetição de interpretação:
Na interpretação cada programa terá que ser interpretado toda vez que for ser executado
Na compilação o programa é compilado e ligado apenas uma vez, e na hora da execução é carregado apenas o módulo de carga
Problemas em loops
Desenvolvimento e depuração:
Na interpretação a relação entre código fonte e executável é mais direta e o efeito da execução (certa ou errada) é direta e imediatamente sentido
Na compilação a identificação de erros durante a fase de execução fica sempre difícil, pois não há mais relação entre comandos do código fonte e instruções do executável
Um programa desenvolvido PCs rodando Windows
não funciona em PCs com UNIX ou em Macintosh!!!???
Como