(Price, 2005) No contexto de implementação de linguagens de programação, dê o significado dos seguintes termos:
(Aho, 2008) Qual é a diferença entre um compilador e um interpretador?
(Price, 2005) Aponte as vantagens e desvantagens dos interpretadores em relação aos compiladores?
(Ricarte, 2008) Quantos bits são necessários para representar instruções em código de máquina para os seguintes processadores? Assuma que todos os códigos de operação têm o mesmo número de bits.
(Aho, 2008) Que vantagens existem em um sistema de processamento de linguagem no qual o compilador produz linguagem simbólica em vez de linguagem de máquina?
(Ricarte, 2008) Um dos projetistas do processador hipotético sugeriu que, em vez das instruções LOAD
e STORE
, uma única instrução MOVE
deveria ser utilizada; nesse caso, a ordem dos operandos serviria para diferenciar a direção da transferência. Por exemplo, MOVE 1, R0
indicaria a transferência do conteúdo da posição 1 de memória para o registrador R0. Já a instrução MOVE R0, 4
indicaria a transferência do conteúdo do registrador R0 para a posição de memória 4. Por que os projetistas teriam mantido duas instruções separadas?
(Price, 2005) Explique o processo de compilação: fases e seu inter-relacionamento.
(Ricarte, 2008) Qual é o código binário para as seguintes instruções do processador hipotético:
LOAD 1, R0
STORE R0, 4
BZERO R2, 15
ADD R0, R2, R0
(Aho, 2008) Um compilador que traduz uma linguagem de alto nível para outra linguagem de alto nível é chamada de tradutor de fonte para fonte. Que vantagens existem em usar a linguagem de programação C como linguagem objeto para um compilador?
(Price, 2005) Qual o significado de "passo" no processo de compilação? Quais as vantagens e desvantagens de implementar um compilador em vários passos?
(Aho, 2008) Descreva algumas das tarefas que um programa montador precisa realizar.
(Ricarte, 2008) Os projetistas da segunda geração do processador hipotético devem considerar as seguintes demandas:
Qual o impacto isolado de cada uma dessas modificações no formato binário das instruções do processador? E, se todas as modificações forem implantadas, qual será o novo formato da instrução?
(Aho, 2008) Quais são as vantagens de (a) um compilador em relação a um interpretador e (b) um interpretador em relação a um compilador?
(Ricarte, 2008) Qual é a sequência de instruções simbólicas correspondentes aos seguintes códigos de máquina do processador hipotético:
00000000
10001010
11101010
11111111
10101010
01010101
00011011
(José Neto, 2016) Que são compiladores autorresidentes, compiladores autocompiláveis e compiladores cruzados? Justifique sua aplicabilidade prática e a razão de existência dos três tipos de compiladores.
(José Neto, 2016) Quais as dificuldades encontradas quando se deseja transportar um compilador de uma máquina para outra? Como contorná-las?
(Sebesta, 2000) O estudo dos processadores de linguagens é justificado pela importância das linguagens de programação de alto-nível no desenvolvimento de programas. Que importância é essa?
(José Neto, 2016) Que são metalinguagens? Exemplifique com alguns casos conceitualmente variados.
(Sebesta, 2000) O que produz uma execução de programa mais rápida: um compilador ou um interpretador puro? Justifique a sua resposta.
(Sebesta, 2000) A primeira linguagem de programação de alto nível que você aprendeu foi implementada com um interpretador puro, com um sistema de implementação híbrido ou com um compilador? Exemplifique a sua resposta.
Aho, Alfred V. (2008). Compiladores: princípios, técnicas e ferramentas. 2ª edição. São Paulo: Pearson Addison-Wesley. 634 páginas.
José Neto, João. (2016). Introdução à Compilação. 2ª edição. Rio de Janeiro: Elsevier. 307 páginas.
Price, Ana Maria de Alencar. (2005). Implementação de Linguagens de Programação: compiladores. 3ª edição. Porto Alegre: Instituto de Informática da UFRGS: Sagra Luzzatto. 212 páginas.
Ricarte, Ivan. (2008). Introdução à Compilação. Rio de Janeiro: Elsevier. 264 páginas.
Sebesta, Robert W. (2000). Conceitos de Linguagens de Programação. 4ª edição. Porto Alegre: Bookman. 624 páginas.