Revisão de Compiladores U3 e U4

Revisão de Compiladores U3 e U4

University

10 Qs

quiz-placeholder

Similar activities

Métodos de Solução de Problemas e Representação de Entidades

Métodos de Solução de Problemas e Representação de Entidades

University

9 Qs

Como programa em C - Deitel - Capítulo 1 - Introdução aos computadores, à internet e à Web

Como programa em C - Deitel - Capítulo 1 - Introdução aos computadores, à internet e à Web

University

14 Qs

INFORMÁTICA: Quem sabe mais?

INFORMÁTICA: Quem sabe mais?

KG - Professional Development

15 Qs

Lógica Programação

Lógica Programação

University

12 Qs

Revisão de Linguagens Formais

Revisão de Linguagens Formais

University

10 Qs

Intro-Computação_3.3

Intro-Computação_3.3

University

10 Qs

Sistemas Operacionais - U1.3 - caracteristicas

Sistemas Operacionais - U1.3 - caracteristicas

University

13 Qs

Inteligência Artificial

Inteligência Artificial

University

10 Qs

Revisão de Compiladores U3 e U4

Revisão de Compiladores U3 e U4

Assessment

Quiz

Computers

University

Hard

Created by

Debora Aires

Used 6+ times

FREE Resource

10 questions

Show all answers

1.

MULTIPLE CHOICE QUESTION

15 mins • 1 pt

Media Image

Considere a gramática a apresentada na figura, em que S, A e B são símbolos não terminais, 0 e 1 são terminais e ε é a cadeia vazia.


A respeito dessa gramática, analise as afirmações a seguir:


I. Nas cadeias geradas por essa gramática, o último símbolo é 1.

II. O número de zeros consecutivos nas cadeias geradas pela gramática é, no máximo, dois.

III. O número de uns em cada cadeia gerada pela gramática é maior que o número de zeros.

IV. Nas cadeias geradas por essa gramática, todos os uns estão à esquerda de todos os zeros.


É correto apenas o que se afirma em

I

II

I e III

II e IV

III e IV

2.

MULTIPLE CHOICE QUESTION

5 mins • 1 pt

Compiladores de linguagens de programação traduzem programas-fonte, em uma linguagem de entrada, para programas-objeto, em uma linguagem de saída. Durante o processo de tradução, o compilador deve verificar se as sentenças do programa-fonte estão sintaticamente corretas. Esse processo de análise sintática pode ser realizado construindo-se uma árvore de análise segundo duas principais abordagens: top-down, quando a árvore é investigada da raiz às folhas; ou bottom-up, das folhas à raiz. Acerca desse assunto, julgue os itens seguintes.


I A análise top-down é adequada quando a linguagem de entrada é definida por uma gramática recursiva à esquerda.

II Independentemente da abordagem adotada, top-down ou bottom-up, o analisador sintático utiliza informações resultantes da análise léxica.

III Se os programas em uma linguagem podem ser analisados tanto em abordagem top-down como em bottom-up, a gramática dessa linguagem é ambígua.

IV A análise bottom-up utiliza ações comumente conhecidas como deslocamentos e reduções sobre as sentenças do programa-fonte.


Estão certos apenas os itens

I e II.

I e III.

II e IV.

I, III e IV.

II, III e IV.

3.

MULTIPLE CHOICE QUESTION

15 mins • 1 pt

Media Image

Qualquer expressão aritmética binária pode ser convertida em uma expressão totalmente parentizada, bastando reescrever cada subexpressão binária a @ b como (a @ b), em que @ denota um operador binário. Expressões nesse formato podem ser definidas por regras de uma gramática livre de contexto, conforme apresentado na figura. Nessa gramática, os símbolos não-terminais E, S, O e L representam expressões, subexpressões, operadores e literais, respectivamente, e os demais símbolos das regras são terminais.

Tendo como referência as informações acima e sabendo que existem diferentes derivações para a expressão (((a + b) * c) + (d * e)) é correto, então, afirmar que a gramática acima é ambígua?

Sim, pois a ambigüidade é definida como a existência de múltiplas árvores sintáticas para uma mesma sentença.

Não, pois no caso da sentença apresentada, ela possui várias derivações (ou seqüências de derivação), mas todas correspondem a uma mesma árvore.

A gramática apresentada na figura não trata o caso de precedência de operadores, por isso é ambígua.

Os parênteses presentes na gramática apresentada na figura não substitui a necessidade de tratar o caso de precedência de operadores, por isso é ambígua.

4.

MULTIPLE CHOICE QUESTION

5 mins • 1 pt

A etapa de análise semântica de um compilador tem como objetivo verificar os inter-relacionamentos de um programa, validando tipologias, fluxos de controle e unicidade na declaração de variáveis.

Verdadeiro

Falso

5.

MULTIPLE CHOICE QUESTION

5 mins • 1 pt

Media Image

Um compilador que lê o código fonte em uma linguagem e traduz diretamente para o código de máquina não tem portabilidade, já um compilador que pode traduzir um ou mais tipos de linguagens fontes para vários tipos de maquinas é dito portável. Analise os gráficos na figura. Ao analisarmos a figura, podemos concluir que:

Sem a representação intermediária, serão necessários 10 compiladores para todas as linguagens e arquiteturas propostas na Figura (B).

A RI é algo que existe apenas como conceito, pois um compilador como o apresentado na Figura (C) não existe.

Com a representação intermediária, serão necessários 12 compiladores para todas as linguagens e arquiteturas propostas na Figura.

As traduções apresentadas na Figura (B) são os únicos compiladores possíveis de serem construídos sem a RI.

Sem a representação intermediária, somente o código intermediário poderá ser utilizado para construir os compiladores da Figura (B).

6.

MULTIPLE SELECT QUESTION

5 mins • 1 pt

Sabe-se que um compilador é dividido em 2 fases: Frontend e Backend. Quais são as fases que integram o backend de um compilador?

Gerenciamento da tabela de símbolos

Geração do código intermediário

Otimização do código

Geração do código

Análise Sintática

7.

MULTIPLE CHOICE QUESTION

5 mins • 1 pt

Ligue as descrição com as fases do compilador:


a)análise sintática e semântica.

b)fase de análise.

c)fase de síntese.


1.tratam da grande maioria dos erros detectáveis pelo compilador.

2.constrói o programa alvo desejado, com base nas respectivas representações intermediárias. É a fase que requer as técnicas mais especializadas.

3.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.

4.responsável por verificar os inter-relacionamentos de um programa, validando tipologias, fluxos de controle e unicidade na declaração de variáveis.

A-1; B-3 e 4;C-2

A-1 e 4; B-3;C-2

A-1; B-3;C-2 e 4

A-1; B-4;C-2 e 3

A-1 e 3; B-4;C-2

Create a free account and access millions of resources

Create resources
Host any resource
Get auto-graded reports
or continue with
Microsoft
Apple
Others
By signing up, you agree to our Terms of Service & Privacy Policy
Already have an account?