Buscar

Compiladores-Gabarito-Simulado

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Name :
Class :
Date :
1.
Quizizz
Compiladores-V1
O linker tem a tarefa de reunir em um único programa os vários módulos-objeto obtidos a partir da tradução dos
diferentes arquivos-fontes que compõem o programa. A esse arquivo resultante, dado por todas as partes
devidamente encaixadas, damos o nome de Módulo Absoluto de Carga. Durante esse processo, o linker deve
ser capaz de resolver as chamadas Referências Cruzadas, isto é, referência a elementos externos ao módulo
corrente, e são conhecidos apenas após a ligação dos módulos. Tendo em mente essas atribuições, é incorreto
afirmar que cabe ao linker:
a) Construir uma tabela com
todos os módulos-objeto e
registrar seus respectivos
comprimentos.
b) Atribuir um endereço de carga
a cada módulo-objeto, que
identificará sua posição dentro
do módulo de carga.
c) Relocar todas as instruções
que contêm um endereço,
adicionando ao seu endereço
uma constante de relocação
(que é o endereço inicial de
cada módulo).
d) Encontrar todas as instruções
que referenciam outros
procedimentos e inserir nelas
o endereço absoluto dos
mesmos.
e) Copiar o módulo de carga
para a memória principal,
preparando o programa para a
sua execução.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
1 of 21 3/28/19, 3:40 PM
2. Em um sistema de processamento de linguagem, vários outros programas podem ser necessários para a
criação de um programa objeto executável, como mostrado na figura abaixo.
a) Editor de Ligação/Carregador,
Montador, Compilador e Pré-
processador.
b) Pré-processador, Compilador,
Editor de Ligação/Carregador
e Montador.
c) Compilador, Pré-processador,
Montador e Editor de
Ligação/Carregador.
d) Pré-processador, Compilador,
Montador e Editor de
Ligação/Carregador.
e) Pré-processador, Montador,
Compilador e Editor de
Ligação/Carregador.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
2 of 21 3/28/19, 3:40 PM
3. Sobre as linguagens de programação, é correto afirmar:
a) Linguagens de alto nível
cumprem tarefas mais
substanciais com um número
menor de comandos, mas
exigem programas tradutores
denominados compiladores
para converter programas em
linguagem de alto nível para
linguagem de máquina.
b) Um computador pode
entender qualquer linguagem
de máquina, pois a linguagem
de máquina não é definida
pelo projeto de hardware do
computador.
c) Programadores podem
escrever instruções em várias
linguagens de programação e
todas são entendidas
diretamente pelos
computadores sem a
necessidade de tradução.
d) Softwares escritos em
linguagens de máquina são
portáveis.
e) Interpretadores são
programas que convertem
códigos escritos em
linguagem de alto nível para
programa sem linguagem de
máquina.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
3 of 21 3/28/19, 3:40 PM
4.
5.
Podemos afirmar sobre a gramática abaixo que:
Program : Statement ";" Program
| /* producao vazia */
;
Statement : "if" Expression "then" Statement "else" Statement
| identifier "=" Expression
;
Expression : identifier
| number
| identifier "+" Expression
| number "+" Expression
;
a) Ela Não é ambígua. b) Ela é ambígua devido à
produção Program.
c) Ela é ambígua devido à
produção Statement.
d) Ela é ambígua devido à
produção Expression.
e) Ela possui produções com
recursão à esquerda.
Qual a descrição da linguagem denotada pela expressão regular apresentada abaixo?
a(a|b)*a
a) String de b’s. b) String de a’s e b’s que
começa com a e termina com
a.
c) String de a’s entre b’s. d) String de a’s e b’s com vazio.
e) String de a’s seguido de vazio
terminando com b’s.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
4 of 21 3/28/19, 3:40 PM
6.
7.
Qual das alternativas de expressão regular representa a linguagem a seguinte: “Cadeia de a’s e b’s que contém
apenas três b.”
a) a(a|b)*a b) ((ε|a)b*)*
c) (a|b)*a(a|b)(a|b) d) a*ba*ba*ba*
e) (aa|bb)*((ab|ba)(aa|bb)*
(ab|ba)(aa|bb)*)*
A gramática abaixo define expressões aritméticas simples.
Defina quais os símbolos terminais, não terminais e de início da gramática?
a) Terminais “ + - * / ( ) ”, Não
Terminais (expression, term,
factor) e Inicial (expression).
b) Terminais “ id + - * / ( ) ”, Não
Terminais (expression, term,
factor) e Inicial (factor)
c) Terminais “ id + - * / ( ) ”, Não
Terminais (expression, term,
factor) e Inicial (expression)
d) Terminais “ id + - * / ( ) ”, Não
Terminais (expression, term,
factor) e Inicial (term)
e) Terminais “ + - * / ”, Não
Terminais (expression, term,
factor) e Inicial (expression)
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
5 of 21 3/28/19, 3:40 PM
8. Uma árvore de derivação é uma representação gráfica de uma derivação que filtra a ordem na qual as
produções são aplicadas para substituir não-terminais. Cada nó interior de uma árvore de derivação representa
a aplicação de uma produção. O nó interior é rotulado com o não-terminal A do lado esquerdo da produção; os
filhos do nó são rotulados, da esquerda para a direita, pelos símbolos do corpo da produção pelo qual esse A
foi substituído durante a derivação.
A árvore de derivação abaixo foi gerada por qual produção (cadeia)?
a) - ( ) + id id b) - ( id + id )
c) - ( + ) id id d) - ( + id id )
e) - ( + id ) id
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
6 of 21 3/28/19, 3:40 PM
9. Indique quais dos seguinte termos
a) imperativa
b) declarativa
c) von Neumann
d) orientada por objeto
e) funcional
f) terceira geração
g) quarta geração
h) de scripting
aplicam-se às seguintes linguagens
1) C
2) C++
3) Cobol
4) Fortran
5) Java
6) Lisp
7) ML
8) Perl
9) Python
10) VB
A relação entre os termos e as linguagens geram qual ordem (letra do termo = número da linguagem,
separados por #)?
a) a = 1 e 2 # b = nenhuma # c =
nenhuma # d = 2 e 5 # e = 7 #
f = nenhuma # g = 3 # h = 8 e
9
b) a = 1 e 2 # b = nenhuma # c =
nenhuma # d = 2 e 5 # e = 7 #
f = 4 # g = nenhuma # h = 8 e
9
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
7 of 21 3/28/19, 3:40 PM
10.
c) a = 1 e 2 # b = nenhuma # c =
nenhuma # d = 2 e 5 # e = 7 #
f = nenhuma # g = nenhuma #
h = 8 e 9
d) a = 1 e 2 # b = 10 # c =
nenhuma # d = 2 e 5 # e = 7 #
f = nenhuma # g = nenhuma #
h = 8 e 9
e) a = 2 e 3 # b = nenhuma # c =
nenhuma # d = 3 e 6 # e = 8 #
f = nenhuma # g = nenhuma #
h = 7 e 8
Conhecer as metodologias utilizadas por um compilador para a análise e síntese de um programa de
computador pode ser muito útil para entender como um software funciona por dentro. Assim, atividades como a
engenharia reversa podem ser mais facilmente entendidas e realizadas. A esse respeito, no que se refere aos
programas de computadores e às fases de um compilador, assinale a alternativa correta.
a) As fases de análise sintática e
semântica tratam da grande
maioria dos erros detectáveis
pelo compilador.
b) A fase de análise constrói o
programa alvo desejado, com
base nas respectivas
representações
intermediárias. É a fase que
requer as técnicas mais
especializadas.
c) Durante a análise sintática do
programa fonte, o compilador
procura encontrar as
construções que possuam a
estrutura sintática correta,
sem se preocupar com o
significado da operação
envolvida.
d) A análise semântica, também
chamada de análise
gramatical, envolve o
agrupamento dos tokens do
programa fonte, no qual cada
token representa uma
sequência de caracteres
logicamente coesa, em frases
gramaticais que são usadas
pelo compilador, a fim de
sintetizar a saída.
e) A fase final do compiladoré a
geração de código
intermediário, na qual as
alocações de memória são
realizadas para cada uma das
variáveis utilizadas pelo
programa.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
8 of 21 3/28/19, 3:40 PM
11.
12.
Para que os programas funcionem, eles devem ser traduzidos para o código de máquina (de código fonte para
código objeto) e para isso é necessário um tradutor ou um compilador. Em relação à característica de um
programa compilado, analise as afirmativas a seguir:
I. O compilador ocupa a memória enquanto se executa o programa.
II. O compilador é carregado na memória apenas na compilação do programa.
III. O programa é traduzido inteiramente uma vez.
IV. O programa precisa ser traduzido cada vez que é rodado.
V. Sua execução é rápida.
VI. O programa acaba por se tornar mais lento.
Está CORRETO o que se afirma em:
a) Somente I. b) Somente I e VI.
c) Somente IV e VI. d) II, III e V.
e) I, II, III e V.
Os compiladores e interpretadores são exemplos de:
a) softwares aplicativos. b) softwares utilitários.
c) firmwares. d) softwares básicos.
e) softwares livres.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
9 of 21 3/28/19, 3:40 PM
13.
14.
Considere as afirmativas:
I. cria o código objeto traduzindo as instruções da linguagem de montagem (assembly) para código de
máquina;
II. recebe como entrada um conjunto de arquivos objetos e bibliotecas, e produz como resultado um arquivo
objeto de saída;
III. traduz um programa descrito em uma linguagem de alto nível para um programa em linguagem simbólica ou
linguagem de máquina;
IV. recebe uma instrução do programa fonte, converte-a em linguagem de máquina e ordena ao computador
que execute esta instrução.
Nessa ordem, os itens de I a IV referem-se a:
a) ligador, montador,
interpretador e montador.
b) ligador, montador, compilador
e interpretador.
c) interpretador, ligador,
compilador e montador.
d) montador, ligador, compilador
e interpretador.
e) compilador, ligador, montador
e interpretador.
Durante a compilação de um código-fonte, a fase do compilador que é responsável por produzir uma sequência
de tokens é a:
a) análise léxica. b) análise semântica.
c) análise sintática. d) geração de código executável.
e) verificação de tipos.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
10 of 21 3/28/19, 3:40 PM
15.
16.
17.
Um compilador é um programa que executa vários passos, dentre os quais, o de analisar uma sequência de
entrada para determinar sua estrutura gramatical segundo uma determinada gramática formal.
O resultado típico dessa análise é uma estrutura conhecida como:
a) árvore AVL b) árvore sintática
c) fluxo (stream) de tokens d) gramática dirigida a sintaxe
e) gramática livre de contexto
Na implementação de compiladores, a fase de parser do programa baseia-se, em parte, no resultado de um
analisador léxico.
Assinale a opção que descreve o papel de um analisador léxico.
a) Representar as regras da
gramática da linguagem.
b) Verificar a conformidade do
código fonte com as regras da
gramática da linguagem.
c) Definir a notação em que as
regras da gramática são
expressas.
d) Identificar os tokens
gramaticais no código fonte.
e) Exprimir a semântica das
construções da linguagem.
Abaixo, estão enumeradas as fases que integram o front-end de um compilador:
1) Análise Semântica
2) Análise Léxica
3) Análise Sintática
4) Gerador de código intermediário
a) 1, 3, 2 e 4. b) 3, 1, 4 e 2.
c) 2, 3, 1 e 4. d) 1, 4, 2 e 3.
e) 4, 1, 2 e 3.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
11 of 21 3/28/19, 3:40 PM
18.
19.
A descompilação é adotada na engenharia reversa de produtos de software, com o propósito de analisar os
códigos-fonte de um sistema para extrair destes a documentação, geralmente ausente ou obsoleta, ou para
auxiliar na análise da segurança do sistema, como na checagem de códigos maliciosos embutidos no software.
Diante deste contexto, um sistema de descompilação consiste:
a) Em traduzir um programa
escrito em linguagem de alto
nível para uma linguagem de
máquina, cujas instruções
podem ser executadas por um
processador.
b) Num processo de analisar
sintaticamente um programa
para determinar se a estrutura
do código de máquina
pertence à linguagem alvo do
programa de alto nível.
c) Num conjunto de programas
que, a partir da leitura de um
programa escrito em código
de máquina, realiza sua
montagem em instruções
mnemônicas em Assembly.
d) Num conjunto de programas
que, a partir da leitura de um
programa escrito em código
de máquina, traduz o mesmo
em programa equivalente em
uma linguagem de alto nível.
A compilação é o processo de tradução de um programa escrito em uma linguagem fonte em um programa
equivalente em linguagem de máquina. Nesse processo, o programa fonte normalmente passa pelas fases:
I. Identificação de sequências de caracteres de entrada e produção de uma sequência de elementos de saída,
os tokens. Nesta fase, verifica-se se cada caractere do programa fonte pertence ao alfabeto da linguagem,
identificando os tokens e desprezando comentários e espaços em branco. Os tokens constituem classes de
símbolos, tais como palavras reservadas, delimitadores, identificadores etc.
II. Identificação de sequências de símbolos que constituem estruturas como expressões e comandos, através
de uma varredura, ou parsing, da representação interna do programa fonte, produzindo uma estrutura em
árvore, chamada árvore de derivação.
III. Verificação das estruturas quanto ao sentido, ou seja, se o programa não possui erros de significado. Por
exemplo, verifica se um identificador declarado como variável é utilizado como tal, se existe compatibilidade
entre operandos e operadores em expressões etc.
Os itens I, II e III referem-se, correta e respectivamente, às fases
a) Análise Léxica − Análise
Sintática − Análise Semântica.
b) Interpretação − Análise
Sintática − Montagem.
c) Busca Binária − Montagem
Léxica − Análise Semântica.
d) Classificação − Análise Léxica
− Montagem.
e) Identificação Inicial − Análise
Estrutural − Geração de
Código.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
12 of 21 3/28/19, 3:40 PM
20. Durante a análise sintática, erros podem ser detectados na sintaxe do programa fonte. Nesse caso, alguns
compiladores podem reportar o erro e interromper a análise. Outros reportam o erro, mas, também, realizam
uma recuperação do erro e tentam continuar a fase de análise, entretanto, a fase de síntese é desativada.
Nesse sentido, analise as assertivas a seguir:
I - Um recuperador de erros para um analisador sintático deve informar a presença de erros de forma clara e
recuperar-se de maneira que consiga continuar a fase de análise sem se preocupar com o custo de
processamento para tal atividade.
II - O modo pânico é uma forma de recuperação de erro na qual o analisador despreza símbolos da entrada até
que um token sincronizante seja encontrado.
III - Erros sintáticos incluem divergências de tipo entre operadores e operandos.
IV - Na recuperação em nível de frase ou local, há a lteração sobre um símbolo que pode ser feita: pela
substituição, inserção ou exclusão de token de entrada.
Quais das assertivas apresentadas estão corretas?
a) apenas as assertivas I e II. b) apenas as assertivas I e III.
c) apenas as assertivas II e III. d) apenas as assertivas II e IV.
e) penas as assertivas III e IV.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
13 of 21 3/28/19, 3:40 PM
21. O escopo de uma variável é a faixa de comandos em que a mesma é visível, ou seja, onde a variável pode ser
referenciadapor aquele comando. No escopo estático (ou léxico) o escopo de uma variável é determinado
através da estrutura textual do programa, enquanto que no escopo dinâmico, o escopo de uma variável é
determinado através da linha de execução do programa, sendo dependente portanto da ordem de execução
das rotinas. Considerando o programa abaixo, elaborado na sintaxe da linguagem de programação Java,
analise as assertivas a seguir:
I - A saída do programa será 10:15 considerando a aplicação das regras do escopo estático.
II - A saída do programa será 10:55 considerando a aplicação das regras do escopo estático.
III - A saída do programa será 20:35 considerando a aplicação das regras do escopo dinâmico.
IV - A saída do programa será 40:55 considerando a aplicação das regras do escopo dinâmico.
Quais das assertivas apresentadas estão corretas?
a) apenas as assertivas I e II. b) apenas as assertivas I e III.
c) apenas as assertivas II e III. d) apenas as assertivas II e IV.
e) apenas as assertivas III e IV.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
14 of 21 3/28/19, 3:40 PM
22. A construção de analisadores descendentes é auxiliada por duas funções, denominadas FIRST e FOLLOW,
associadas a uma gramática G. Durante a análise descendente, as funções FIRST e FOLLOW permitem
escolher qual produção deverá ser aplicada, com base no próximo símbolo de entrada. Considerando a
gramática livre de contexto G5, analise as assertivas a seguir:
G5 = ({A, B, C, D, E, F, G}, {x, y, z}, P5, A)
P5 = {A → xB
B → DC
C → xC | yC | zC | ε
D → yE
E → GF
F → xF | yF | zF | ε
G → z}
I - O conjunto FIRST(B) é {y} e o conjunto FOLLOW(A) é {ε}.
II - O conjunto FIRST(C) é {x, y, z, ε} e o conjunto FOLLOW(D) é {x, y, z, $}.
III - O conjunto FIRST(E) é {z} e o conjunto FOLLOW(C) é {$}.
IV - O conjunto FIRST(E) é {z} e o conjunto FOLLOW(G) é {x, y, z}.
Quais das assertivas apresentadas estão corretas?
a) apenas as assertivas I e II. b) apenas as assertivas I e III.
c) apenas as assertivas II e III. d) apenas as assertivas II e IV.
e) apenas as assertivas III e IV.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
15 of 21 3/28/19, 3:40 PM
23. A estratégia de análise sintática por deslocamento e redução é baseada na técnica de reconhecimento de
sentenças por construção ascendente. Nessa estratégia, símbolos terminais das sentenças são lidos um a um;
a cada símbolo lido, o analisador decide se prossegue com a leitura (desloca) ou se é possível aplicar uma
produção aos símbolos previamente lidos para substituí-los por um símbolo não-terminal da gramática (reduz).
O procedimento conclui com sucesso se toda a sentença foi lida e apenas o símbolo sentencial resulta da
aplicação de todas as reduções.
Nesse sentido, analise as assertivas a seguir sobre analisadores de precedência de operadores, uma classe
de analisadores baseados na análise redutiva:
I - A gramática livre do contexto G8 é uma gramática de operadores.
G8 = ({A, B}, {x, +, -, (, )}, P8 , A)
P8 = {A → ABA | (A) | x B → + | -}
II - Seja a o terminal mais ao topo da pilha e b o primeiro terminal da cadeia de entrada sendo analisada. Se a
> b então se procura o lado direito de handle na pilha e o substitui pelo seu lado esquerdo.
III - Para identificar os handles (substituições) utilizam-se relações de precedência existentes entre os símbolos
terminais (operandos e operadores) e não-terminais (variáveis) em uma tabela sintática ou de precedência.
IV - Na análise de precedência de operadores, existem dois momentos nos quais o analisador pode descobrir
erros sintáticos: a) na consulta à matriz de precedência,
quando não existe relação de precedência entre o terminal mais ao topo da pilha e o símbolo da entrada; b)
quando o analisador supõe a existência de um handle no topo da pilha, mas não existe produção com o lado
direito correspondente.
Quais das assertivas apresentadas estão corretas?
a) apenas as assertivas I e II. b) apenas as assertivas I e III.
c) apenas as assertivas II e III. d) apenas as assertivas II e IV.
e) apenas as assertivas III e IV.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
16 of 21 3/28/19, 3:40 PM
24. A notação tradicional para expressões aritméticas, que representa uma operação binária na forma x + y, ou
seja, com o operador entre seus dois operandos, é conhecida como notação infixada. Uma notação alternativa
para esse tipo de expressão é a notação pré-fixada, na qual o operador é expresso antes de seus operandos,
como por exemplo, + x y. Outra notação alternativa é a notação pós-fixada, na qual o operador é expresso após
seus operandos, como por exemplo, x y +. O atrativo das notações pré-fixada e pós-fixada é que elas
dispensam o uso de parênteses ao adotar a noção de pilha para a representação das expressões. Analise as
assertivas a seguir, considerando a gramática livre de contexto G2.
G2 = ({A, E, T, F, V}, {a, b, c, d, e, f, x, =, +, -, *, /, (, )}, P2, A)
P2 = {A → V=E
E → E+T | E-T | T
T → T*F | T/F | F
F → (E) | V
V → a | b | c | d | e | f | x}
I - A notação pré-fixada da expressão aritmética x = a * b + c * d - e * f é = x + * a b - * c d * e f
II - A notação pré-fixada da expressão aritmética x = a * b + c * d - e * f é = x - + * a b * c d * e f
III - A notação pós-fixada da expressão aritmética x = a - (b - a * (c + b / d)) é x a b a c b d - - * + / =
IV - A notação pós-fixada da expressão aritmética x = a - (b - a * (c + b / d)) é x a b a c b d / + * - - =
Quais das assertivas apresentadas estão corretas?
a) apenas as assertivas I e II. b) apenas as assertivas I e III.
c) apenas as assertivas II e III. d) apenas as assertivas II e IV.
e) apenas as assertivas III e IV.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
17 of 21 3/28/19, 3:40 PM
25.
26.
O código de três endereços é composto por uma sequência de instruções envolvendo operações binárias ou
unárias e uma atribuição. O nome três endereços está associado à especificação, em uma instrução, de no
máximo três variáveis: duas para os operadores binários e uma para o resultado. Assim, expressões
envolvendo diversas operações são decompostas nesse código em uma série de instruções, eventualmente
com a utilização de variáveis temporárias introduzidas na tradução. Dessa forma, obtém-se um código mais
próximo da estrutura da linguagem assembly, e consequentemente, de mais fácil conversão para a linguagem
alvo. O código de três endereços apresentado a seguir é equivalente a qual expressão aritmética.
a) x = (((a - b) * (a + b)) - ((a + b)
/ (a - b))) / (a + b)
b) x = (((a + b) * (a - b)) / ((a - b) /
(a + b))) - (a + b)
c) x = (((a + b) / (a - b)) - ((a - b)
* (a + b))) / (a + b)
d) x = (((a + b) * (a - b)) - ((a + b)
/ (a - b))) / (a + b)
e) x = (((a + b) * (a - b)) - ((a - b)
/ (a + b))) / (a + b)
5 float var;
6 int nr;
.
.
.
15 System.out.print("Entre com o primeiro número: ");
16 nr = input.nextInt();
17 var = nr /3;
18 System.out.printf("O resultado é %8.2f ", var);
Após compilação e execução, sabe-se que foi digitado o número 10,0 em resposta à execução do comando da
linha 15. Nesse caso, o valor numérico impresso na tela, em resposta a execução do comando da linha 18, é:
a) 3. b) 3,3.
c) 3,33. d) 3,3333.
e) 3,3333333.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
18 of 21 3/28/19, 3:40 PM
27.
28.
Com relação aos conceitos e características de compiladores, julgue os itens que se seguem.
Considere a gramática string →string + string → string – string |0|1|2|3|4|5|6|7|8|9 e a string como um único nó
não terminal, que pode ser um dígito ou uma sentença. Nessa situação, a expressão 10 – 4 + 3 possibilita criarduas árvores de derivação distintas.
a) Certo b) Errado
Considerando a Gramática Livre de Contexto:
G = (V,T,P,S), onde:
V = {S}
T = {a,b}
P = {S -> SS | aSa | bSb | E}
I - aa é derivado corretamente a partir da gramática.
II - aabb é derivado corretamente a partir da gramática.
III - aabbaaaa é derivado corretamente a partir da gramática.
IV - ababaab é derivado corretamente a partir da gramática.
V - aaaab é derivado corretamente a partir da gramática.
Assinale a alternativa em que todas as afirmativas estão CORRETAS:
a) I, II, III, IV e V. b) Apenas II, III e IV.
c) Apenas I, IIe V. d) Apenas I, II, III.
e) Apenas II e III.
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
19 of 21 3/28/19, 3:40 PM
29.
30.
A respeito de compiladores, ligadores, linguagem de máquina (assembly) e conceitos associados, julgue
próximos itens.
A criação da tabela de símbolos constitui tarefa realizada pelo ligador.
a) Certo b) Errado
Considere a gramática G definida pelo conjunto de símbolos não terminais{S, A, B, C, D}, pelos símbolos
terminais {a,b,c,d}, e pelas regras de produção:
S → AB | BC
A→ Aa | b
B→ C | cC | b
C→ SaAD | BcCS
D → dS | Ad
A palavra "caabc" pertence à linguagem gerada por esta gramática?
a) Certo b) Errado
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
20 of 21 3/28/19, 3:40 PM
Answer Key
1. e
2. d
3. a
4. a
5. b
6. d
7. c
8. b
9. c
10. a
11. d
12. d
13. d
14. a
15. b
16. d
17. c
18. d
19. a
20. d
21. b
22. c
23. d
24. d
25. e
26. c
27. a
28. a
29. b
30. b
Compiladores-V1 | Print - Quizizz https://quizizz.com/print/quiz/5c8ac0da0ca23a00...
21 of 21 3/28/19, 3:40 PM

Continue navegando