Title | Exercícios - Instruções de Sistemas de Baixo Nível |
---|---|
Author | Lohrann Faber |
Course | Arquiteturas De Computadores |
Institution | Universidade Federal Fluminense |
Pages | 3 |
File Size | 59.1 KB |
File Type | |
Total Downloads | 7 |
Total Views | 131 |
Execução de Programas e caracterização de instruções em Sistemas de baixo nível....
Exercícios - Execução de Programas e caracterização de instruções
Nome: Lohrann Faber Rodrigues Professor: Irineu Neto
1) Defina linguagem de programação, e tipos baixo e alto nível. Cite exemplos. R: A Linguagem de programação serve como um meio de comunicação entre computadores e humanos. A Linguagem de programação de alto nível é uma linguagem com um nível de abstração relativamente elevado, longe do código de máquina e mais próximo à linguagem humana. Desse modo, as linguagens de alto nível não estão diretamente relacionadas à arquitetura do computador. O programador de uma linguagem de alto nível não precisa conhecer características do hardware, como registradores. Alguns exemplos claros de linguagens são: C, C++, Java, entre outras. Já a Linguagem de baixo nível é uma linguagem de programação que compreende diretamente as características da arquitetura do processador. Assim, utiliza somente instruções do processador. Nesse sentido, as linguagens de baixo nível estão diretamente relacionadas com o hardware. Um exemplo é a linguagem Assembly.
2) Explique o que você entende por compilação? R: A compilação é um processo em que o compilador traduz a linguagem de alto nível numa sequencia de instruções para o processador entender.
3) E por interpretação? R: É um processo em que são programas de computador que leem um código fonte de uma linguagem de programação interpretada e o converte em código executável. 4) Compare os dois modos: compilação e interpretação. Indique em que circunstâncias um modo é mais vantajoso que o outro. R: Interpretação: Os ciclos de escrita, execução e modificação são mais rápidos que o de compilação. Compilação: Sua execução é mais rápida perante ao processo de interpretação. 5) Por que um programa em linguagem Assembly não é diretamente executável pelo processador? Como este problema é, na prática, resolvido? R: Porque o mesmo apenas representa as instruções que seriam oferecidas pela arquitetura. O problema é resolvido através do “assembler”, o qual converte essas instruções para a forma binária, fazendo com que o programa seja carregado na memória e interpretado pelo processador. 6) Por que um compilador deve ser específico para uma determinada linguagem de programação e para uma determinada UCP? R: Porque certos compiladores só entendem as bibliotecas pertencentes a essa determinada linguagem de programação/UCP.
7) Explique o que é e como funciona o processo de ligação (linkedição). R: Certos programas possuem módulos, os quais são compilados um a um, sendo “ligado” ao montador, gerando esses módulos em código-objeto. Assim, o linker, como é chamado, reúne esses módulos e resulta no programa executável, o qual é carregado na memória. 8) Quais são as principais etapas de análise de um programa-fonte realizadas por um programa compilador? R: Durante a compilação, o código fonte é analisado (análise léxica, sintática e semântica), é gerado um código intermediário e são construídas tabelas de símbolos. Após esse processo, alocam-se as áreas de memória para variáveis e atribuem-se os registradores a serem utilizados, e finalmente é gerado o código objeto em linguagem de máquina, a qual no caso é binária. Em alguns compiladores, é gerado um código intermediário em Assembly, o qual em seguida passa pelo montador para gerar finalmente o código objeto em linguagem de máquina....