Baixe o app para aproveitar ainda mais
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
Compartilhar