Você está na página 1de 16

Questionrio Unidade II

Pergunta 1
Supondo a expresso dada pela rvore sinttica abaixo, assinale a
alternativa que corresponde ao cdigo intermedirio gerado na forma
de qudruplas.

a)

b)

c)

d)

Resultado

Operador

Oper_1

Oper_2

t1

t2

-U

t3

t2

Resultad
o

Operador

Oper_1

Oper_2

t1

-U

t2

Resultad
o

Operador

Oper_1

Oper_2

t1

t2

Resultad
o

Operador

Oper_1

Oper_2

t1

t2
Resultad
o

-U
Operador

d
Oper_1

Oper_2

t1

d)

Pergunta 2
Aspectos como a obrigatoriedade de declarao antes do uso,
compatibilidade de tipos durante atribuies ou mesmo a adequao
as regras de escopo na utilizao dos identificadores, so exemplos
de questes que esto alm do domnio sinttico de uma linguagem
de programao. Assim a anlise semntica responsvel,
fundamentalmente, por realizar trs tarefas bsicas: construir uma
descrio dos tipos e estruturas de dados definidas pelo
programador; armazenar informaes sobre os identificadores; e
verificar os tipos e demais aspectos dependentes de contexto na
estrutura do programa.
Acerca da anlise semntica de programas, assinale a alternativa
correta.
a) Considera-se portanto que so atribuies do componente semntico de um
compilador as tarefas de verificar o emprego correto dos identificadores, no
que diz respeito ao seu escopo de uso, tipagem e declarao prvia. Deste
modo, em linguagens ditas fracamente tipadas a fase de anlise semntica
do em compilador inexistente, uma vez que no necessitam definir o tipo
de
uma
varivel
e
tampouco
declar-la
antecipadamente.

b) Algumas atividades da anlise semntica so ditas estticas, pois


relacionam-se estritamente com as questes de relacionamento entre os
elementos do cdigo fonte. Como exemplo de semntica esttica, podemos
citar as verificaes de tipos e escopo para variveis e sub-rotinas. Contudo,
linguagens orientadas a objetos, a verificao de tipos durante a declarao
de objetos no pode ser realizada em tempo de compilao dado os
mecanismos
de
herana.

c) H aspetos semnticos que esto ligados a execuo do programa e


referem-se a forma como o programa realiza suas tarefas. Por exemplo,
supondo o comando SE (i<>0) E (K/I > 10) ..., entende-se que, se
concluirmos que a primeira parte falsa no h necessidade de avaliar a
segunda (uma vez que para o operador E impossvel obter um resultado
verdadeiro nesta situao). Por outro lado, se o analisador semntico no
considerar a relao que envolve estas duas clusulas, a falsidade da
primeira implicar em um erro de diviso por zero durante a avaliao da
segunda clusula.
d) O processo de anlise semntica no permite o uso de formalismos uma vez
que suas atividades esto alm do domnio sinttico da linguagem. Na
maioria dos casos suas tarefas so implementadas manualmente em meio
as verificaes de sintaxe, tornando estas duas fases indistinguveis durante
o processo de compilao.
e) A tabela de smbolos considerada uma estrutura de armazenamento
secundria e de pouca importncia, pois nela so encontrados apenas os

dados sobre os identificadores presentes no programa. Sua existncia se


justifica pela necessidade de tornar os elementos definidos pelo
programador conhecidos ao compilador, de modo que este no acuse tais
elementos como erros durante o processo de compilao.

Pergunta 3
Em uma Gramtica de Atributos podemos classificar cada um de seus
atributos em duas categorias, herdados e sintetizados, de acordo com
o smbolo a quem esto associados durante o seu clculo. Os
chamados atributos herdados so aqueles que aparecem ligados a
elementos posicionados a direita do sinal de derivao, ou seja, em
uma regra na forma A, seriam os atributos ligados a qualquer
smbolo da sentena . Por sua vez, os atributos ditos sintetizados
so aqueles que aparecem associados ao elemento da esquerda do
sinal de derivao, isto , para o nosso exemplo, seriam aqueles que
estiverem associados ao smbolo A. A respeito dos atributos analise
os itens a seguir e assinale a alternativa correta.
Entre outros aspectos, a categorizao dos atributos
importante pois permite determinar o sentido em que devemos
percorrer a rvore sinttica para calcul-lo. No caso dos
atributos herdados, como o prprio nome sugere, seu valor
calculado a partir de elementos hierarquicamente superiores da
rvore e dos quais este valor deriva.
i)

ii) Atributos sintetizados so computados a partir de ns


inferiores da rvore sinttica, assim os sucessivos valores deste
atributo podem ser calculados percorrendo a rvore de baixo
para cima. Esta categoria de atributos especialmente
interessante para a propagao de caractersticas comuns a
diferentes trechos do cdigo, como por exemplo, no trecho int
x, y, z;, em que o tipo int pode ser propagado para um n
superior comum a todas as variveis (x, y e z) declaradas no
mesmo comando.
iii) Gramticas que utilizam apenas atributos sintetizados so
chamadas de S-Atribudas. Na traduo dirigida pela sintaxe,
assumese que os smbolos terminais tenham apenas atributos
sintetizados uma vez que as definies no providenciem
quaisquer regras semnticas, apenas aes para a gerao de
cdigo.
a) Apenas o item i verdadeiro.
b) Apenas o item ii verdadeiro.
c) Os itens i e ii so verdadeiros.
d) Os itens i e iii so verdadeiros.
e) Todos os itens so verdadeiros.

Pergunta 4
So tarefas de responsabilidade de um montador Assembler:
A substituio dos mnemnicos pelos opcodes numricos do
conjunto ISA (Instruction Set of Architecture), seguindo uma
tabela de associaes que relaciona o mnemnico com a
instruo-alvo.
i)

ii) A substituio dos endereos simblicos que representam


destinos de saltos e constantes por endereos numricos,
determinando de maneira absoluta ou relativa em termos do
registrador PC (Program Counter) o endereo de destino dos
rtulos.
iii) Reservar espao na memria para armazenamento de dados
de acordo com o tipo associado a cada varivel declarada no
programa.
iv) Gerar constantes em memria para variveis e constantes,
determinando o valor associado ao modo de endereamento do
operando.
a)
b)
c)
d)
e)

Apenas o item i verdadeiro.


Apenas os itens i e ii verdadeiro.
Os itens i, ii e iii so verdadeiros.
Os itens ii, iii e iv so verdadeiros.
Todos os itens so verdadeiros.

Pergunta 5
Um analisador sinttico dito ascendente aquele que processa a
cadeia de entrada e constri sua rvore de derivao de baixo para
cima, ou seja, partindo dos smbolos do programa (as folhas da
rvore) em direo ao smbolo inicial da gramtica (raiz). A esse
respeito analise cada uma das afirmativas a seguir e marque a
alternativa correta.
Por conta de sua forma peculiar de construo da rvore, os
passos executados pelo analisador correspondem ao processo
de derivao conhecido como mais direita (right-most)
invertido. O processo mais direita aquele em que sempre
derivamos o smbolo no-terminal mais direita antes dos
demais. E dito invertido para que a entrada possa ser
processada de maneira natural, isto , a leitura dos smbolos de
entrada sendo feito do incio para o fim do arquivo.
i)

ii) Analisadores deste tipo realizam duas operaes bsica: de


empilhamento (ou deslocamento) de s, em que o smbolo da
entrada s colocado na pilha; e a operao de reduo pela
regra A, em que os smbolos correspondentes a cadeia so
retirados da pilha e substitudos pelo no-terminal A.
iii) A validao do programa acontece quando o analisador
processa todos os smbolos da entrada e alcana o fim de
arquivo, independentemente do contedo da pilha de controle
do processo. Este momento conhecido como validao por
entrada vazia.
a) Apenas o item i verdadeiro.
b) Apenas o item ii verdadeiro.
c) Apenas os itens i e ii so verdadeiros.
d) Apenas os itens i e iii so verdadeiros.
e) Todos os itens so verdadeiros.

Pergunta 6
A respeito dos Carregadores (Loaders) incorreto afirmar:
a) Avaliar a quantidade de memria necessria ao programa e
solicit-la ao SO.
b) Copiar o programa para a memria principal e preparar sua
execuo.
c) Ajustar os endereos do cdigo executvel de acordo com a
posio base de carregamento.
d) Resolver os endereos de cdigo dinamicamente em situaes
de swapping, pois os processos no necessariamente retornam
a mesma posio.
e) Reunir os mdulos objeto em um nico elemento chamado de
mdulo absoluto de carga.

Pergunta 7
Supondo o comando: delta = b * b 4 * a * c; (em C) assinale a
alternativa que corresponde a uma das possveis verses de cdigo
intermedirio dado na forma de qudruplas para este comando.

a.

b.

c.

Resultad
o

Operador

Oper_1

Oper_2

t1

t2

t3

-4

t2

t4

t1

t3

:=

t4

Resultad
o

Operador

Oper_1

Oper_2

t1

t2

t3

t2

t4

-U

t3

t5

t1

:=

t5

t3

Resultad
o

Operador

Oper_1

Oper_2

t1

-4

t2

t1

t3

t4

t1

t3

:=

t4

d.

e.

Resultad
o

Operador

Oper_1

Oper_2

t1

t2

-4

t3

t1

t2

:=

t3

Resultad
o

Operador

Oper_1

Oper_2

t1

t2

-4

t1

t2

Oper_3

Oper_3

Pergunta 8
A tabela de smbolos uma estrutura de dados que tem por propsito
armazenar todos os nomes declarados pelo programador juntamente
com os seus respectivos atributos. considerada fundamental para o
processo de compilao, pois participa de vrias etapas do processo
inclusive para a gerao de cdigo. Durante a anlise semntica o
compilador busca nesta tabela as informaes sobre os
identificadores que participam de suas anlises, como por exemplo,
para recuperar os tipos dos identificadores envolvidos no clculo de
uma expresso com o propsito de verificar a compatibilidade entre
eles.
Sobre a tabela de smbolos e a anlise semntica incorreto afirmar
que:
a) Questes relacionadas a declarao prvia dos identificadores, escopo de utilizao e
a verificao dos argumentos informados como parmetro durante a chamada de uma
sub-rotina so aspectos pertinentes ao componente semntico de tempo de execuo.

b) Os tipos declarados pelo programador estendem os elementos bsicos da linguagem,


permitindo a definio de variveis que esto alm dos tipos primitivos oferecidos por
ela. Desta forma, em uma linguagem de programao orientada a objetos, o analisador
semntico desempenha um papel mais complexo uma vez que responsvel tambm
pelas verificaes de compatibilidade entre classes derivadas e pela resoluo do
escopo no caso da reescrita de mtodos.

c) A tabela de smbolos apresenta registros (tuplas) de tamanhos variados, de acordo


com natureza do identificador armazenado. Por exemplo, para variveis so
importantes informaes quanto ao tipo de dado que armazena, seu escopo de
atuao e visibilidade; j para as sub-rotinas, alm do nome que a identifica,
importante saber quantos parmetros so esperados, assim como o tipo de cada um
deles.

d) Durante o processo de anlise sempre que um novo identificador encontrado, uma


nova entrada na tabela smbolos criada e as informaes a ele relacionadas so
armazenadas. Ao longo do cdigo vrias ocorrncias dos mesmos identificadores
podero ser encontradas. Se o contexto for o de comandos e no o de declaraes,
apenas operaes de consulta so realizadas na tabela. Com isso possvel validar o
uso do identificador em questo quanto ao tipo e escopo, por exemplo, alm da
obrigatoriedade de sua declarao antes da utilizao.

e) A tabela de smbolos importante para a gerao de cdigo, pois nela encontram-se


reunidas as informaes sobre todos os identificadores do programa. A partir de seus
dados, possvel dimensionar a quantidade de memria que precisar ser alocada
para o armazenamento das variveis estticas, por exemplo.

Pergunta 9
Um dos tipos de analisadores ascendentes o conhecido como LR(1), que constri a rvore
sinttica do programa realizando redues atravs das regras da gramtica geradora da
linguagem. Considerando o estado corrente do mecanismo reconhecedor (um autmato de
pilha) e apenas um smbolo da entrada possvel determinar com preciso qual a regra
apropriada e que de ser aplicada em cada momento do processo de anlise do programa.
A construo desse autmato comea com uma ampliao das regras da gramtica, as quais
acrescenta-se uma nova regra que sinalize o incio do processo de derivao e permita
diferenciar qualquer ocorrncia do smbolo inicial daquela que se configura como raiz da rvore
sinttica.
Adicionalmente caracterizamos os diferentes momentos de derivao de uma regra atravs de
uma representao na forma de item. Num item dado por A, o marcador sinaliza os
smbolos que j foram encontrados pelo parser (os smbolos de ) e tambm aqueles que
ainda faltam para que a regra tenha sido completamente derivada (a sequncia correspondente
a ). Quando todos os smbolos tiverem sido encontrados, ou seja, tivermos um item na forma
A possvel ento realizar a reduo da sequncia correspondente por A.
Supondo a gramtica dada a seguir:

G = ( {S,V,D,T,L}, {int, float, id, ; , ,}, P, S)


P = { (0) S V,

(4) T int,

(1) V D ; V, (5) T float,


(2) V D,

(6) L L , id

(3) D TL,

(7) L id }

Sabendo que j encontra-se aumentada pela incluso da regra 0, assinale a alternativa que
corresponde ao primeiro estado (inicial) do autmato de reconhecimento deste analisador.

a.

Estado 0:
S V

b.

Estado 0:
S V
V D ; V
V D

c.

Estado 0:
S V
V D ; V
V D
D TL
T int
T float
L L , id
L id

d.

Estado 0:
S V
V D ; V
V D
D TL
T int
T float

e.

Estado 0:
S V
V D ; V
V D
D TL

L L , id
Pergunta 10
O Linker tem a tarefa de reunir em um nico programa os vrios
mdulos objeto obtidos a partir da traduo dos diferentes arquivos
fontes que compe o programa. Esse arquivo resultante, dado por
todas as partes devidamente encaixadas, damos o nome de Mdulo
Absoluto de Carga. Durante esse processo o linker deve ser capaz de
resolver as chamadas Referncias Cruzadas, isto , referncia a
elementos externos ao mdulo corrente e so conhecidos apenas
aps a ligao do mdulos. Tendo em mente estas atribuies,
incorreto afirmar que cabe ao Linker:
a) Construir uma tabela com todos os mdulos objeto e registrar
seus respectivos comprimentos.
b) Atribuir um endereo de carga a cada mdulo objeto, que
identificar sua posio dentro do mdulo de carga.
c) Relocar todas as instrues que contm um endereo,
adicionando ao seu endereo uma constante de relocao (que
o endereo inicial de cada mdulo).
d) Encontrar todas as instrues que referenciam outros
procedimentos e inserir nelas o endereo absoluto dos mesmos.
e) Copiar o mdulo de carga para a memria principal, preparando
o programa para a sua execuo.

QUESTOES EXTRAS
A memria um recurso controlado pelo sistema operacional e um programa no deve ter
posies de memria fixas e pr-estabelecidas para que funcione corretamente. Usualmente o
programador desenvolve seu cdigo despreocupado de qual ser sua localizao na memria,
pois caber ao sistema resolver os problemas relacionados com posicionamento do cdigo
quando colocar o programa na memria para execuo. Este processo de resoluo de
endereos chamado de relocao.
A atividade de relocao realizada conjuntamente por montadores e carregadores. Os
montadores so encarregados de marcar as posies no cdigo-objeto passveis de alterao,
enquanto os carregadores devem reservar espao suficiente na memria para receber o cdigo
de mquina e atualizar suas posies a partir da localizao base do programa na memria.
A esse respeito analise as afirmativas a seguir e assinale a alternativa correta.
i) As referncias aos smbolos externos devem estar presentes no mdulo-objeto e podem
ocorrer quanto um smbolo referenciado no segmento, mas, definido, ocorre em outro
segmento (descrito como uma referncia externa), ou ainda, quando um smbolo definido
neste segmento e poder ser referenciado em outro segmento (descrito como uma definio
local de um smbolo externamente referencivel).
ii) o Dicionrio de Smbolos Externos contm todos os smbolos que esto envolvidos no
processo de resoluo de referncias entre segmentos: smbolos associados a referncias
externas, a definies locais ou a definies de segmentos.
iii) o Diretrio de Relocao e Ligao indica, para cada segmento, quais posies devero ter
seus contedos atualizados, de acordo com o posicionamento em memria deste e de outros
segmentos.
a. Apenas o item i verdadeiro.
b.

Apenas o item ii verdadeiro.

c.

Os itens i e ii so verdadeiros.

d.

Os itens i e iii so verdadeiros.

e.

Todos itens so verdadeiros.

A sintaxe geralmente definida por uma Gram. Livre de Contexto, mas estas no so capazes
de descrever aspectos sobre a compatibilidade de tipos ou regras de escopo de identificadores.
Analise as informaes a seguir e assinale a alternativa correta.
i) Uma Gramtica de Atributos uma gramtica livre de contexto estendida com regras de
clculo e/ou aes semnticas de modo a fornecer sensitividade ao contexto atravs de
elementos chamados de atributos, que esto associados aos smbolos terminais e no
terminais utilizados na regra de produo.
ii) Um atributo qualquer propriedade da estrutura da linguagem que se deseja quantificar ou
caracterizar, como por exemplo, o tipo e o escopo das variveis, valores de expresses, etc.
iii) O valor dos atributos estabelecido tomando como base a rvore sinttica explcita do
programa e podem ser calculados tanto em tempo de compilao quanto em tempo de
execuo, de acordo com a propriedade que representam.
a. Apenas o item i verdadeiro.
b.

Apenas o item ii verdadeiro.

c.

Os itens i e ii so verdadeiros.

d.

Os itens i e iii so verdadeiros.

e.

Todos itens so verdadeiros.

A tabela de movimentos de um analisador LR(1) construda a partir de um autmato de pilha,


cujos estados representam o processo de derivao do programa em relao a gramtica de
linguagem. As diferentes posies da tabela informam ao analisador qual a operao
(empilhamento, reduo ou aceitao) deve ser realizada em cada instante do processo de
anlise, tomando como referncia apenas o estado corrente e o smbolo (token) dado na
entrada. Acerca desta tabela e de sua construo, analise cada uma das afirmativas a seguir e
selecione a alternativa correta.
i) A operao de empilhamento equivale a retirada do smbolo da entrada e sua insero na
pilha para processamento. A clula da tabela equivalente a esta ao dada pelo nmero
correspondente ao estado que o autmato assume aps a transio.
ii) Durante uma ao de reduo, os smbolos (estados) equivalentes a cadeia derivada so
retirados da pilha e substitudos pelo no-terminal que os origina, realizando assim o processo
inverso ao da derivao pela regra em questo. Na tabela essa ao colocada em cada
clulas cuja linha corresponde ao estado que contm a regra completada e as colunas
correspondentes aos smbolos pertencentes ao conjunto de seguidos (Follow) do no-terminal
associado a regra.
iii) A aceitao da cadeia ocorre quando encontramos uma ocorrncia do smbolo inicial da
gramtica. Desta forma, preenchemos a coluna correspondente ao smbolo inicial com esta
ao para todas as linhas da tabela.
a. Apenas o item i verdadeiro.
b.

Apenas o item ii verdadeiro.

c.

Os itens i e ii so verdadeiros.

d.

Os itens i e iii so verdadeiros.

e.

Todos itens so verdadeiros.

A respeito da definio e tarefas dos Montadores (Assemblers), Ligadores (Linkers) e


Carregadores (Loaders) analise as afirmativas a seguir e assinale a alternativa correta.
i) Os montadores so encarregados da traduo do programa escrito em linguagem de
montagem (assembly) para um programa equivalente escrito em linguagem de mquina, isto ,
com o conjunto de instrues da arquitetura alvo (ISA Instruction Set Architecture).
ii) Os ligadores, llinkers ou linkeditores so programas responsveis por unir as diferentes
partes de um programa e construir um nico executvel. A sua existncia o que permite a
modularizao de um programa e o uso de bibliotecas estticas.
iii) O Loader: responsvel pela transferncia de um programa do disco para a memria
principal, deixando-o pronto para a execuo. Usualmente o carregador parte do Sistema
Operacional.
a. Apenas o item i verdadeiro.
b.

Apenas o item ii verdadeiro.

c.

Os itens i e ii so verdadeiros.

d.

Os itens i e iii so verdadeiros.

e.

Todos itens so verdadeiros.