Logo Passei Direto
Buscar

questionario_2020

Questionário de revisão sobre compiladores e linguagens de programação. Inclui múltipla escolha, itens para relacionar e perguntas dissertativas sobre linkedição, classes de gramáticas, implementação compilada/interpretada/híbrida, processadores de linguagem e análise léxica (scanning e recuperação de erros).

Ferramentas de estudo

Questões resolvidas

Sobre a Linkedição, assinale a alternativa correta.
I. Não obstante a linguagem de máquina gerada por um compilador possa ser executada diretamente no hardware, quase sempre ela deve ser executada juntamente com algum outro código.
II. A maioria dos programas de usuário não exige programas do Sistema Operacional.
III. Durante o processo de Linkedição, o compilador cria chamadas a programas do sistema operacional.
IV. O código de usuário e o de sistemas juntos, às vezes, são chamados de módulos de carga ou imagem de executável.
V. O Linkeditor é uma parte do Compilador.
a) As alternativas I, II e III são verdadeiras.
b) Somente as alternativas I e III são verdadeiras.
c) Somente as alternativas II e V são falsas.
d) As alternativas II, III e V são falsas.
e) NDA.

Assinale a alternativa correta:
I. Uma gramática é do tipo Regular, se cada produção é da forma: A::= aB; A ::= a ou A ::= ; onde A e B são não terminais e a é um terminal.
II. A Gramática Livre do Contexto (GLC) admite apenas regras de produção cujo lado esquerdo contém exatamente um não-terminal.
III. Nas Gramáticas Sensíveis ao Contexto o símbolo inicial S pode aparecer tanto no lado direito, quanto no esquerdo das regras de produção.
IV. Nas Gramáticas Sensíveis ao Contexto o lado direito da produção é menor ou igual (<=) ao lado esquerdo, com exceção da regra S ::= .
V. Uma linguagem com dois ou mais símbolos terminais que possuem uma relação quantitativa e posicional não pode ser representada por uma Gramática Regular.
a) Somente as alternativas I e II são verdadeiras.
b) As alternativas I, II e V são verdadeiras.
c) As alternativas I, III e IV são falsas.
d) As alternativas I, II e III são verdadeiras.
e) NDA.

Explique o que é feito no processo de "scanning" do Analisador Léxico.

No que diz respeito à recuperação de erros da análise léxica, existem estratégias comuns que podem ser implementadas a fim de levá-las a efeito. No entanto, tais estratégias podem ser um tanto arriscadas. Explique com suas palavras o porquê disso.

Qual é a razão principal para que códigos-fonte totalmente ou parcialmente interpretados executem mais lentamente que os compilados?

No contexto de implementação de linguagens de programação, dê o significado dos seguintes termos: montador, cross-compiler e pré-processador.

Explique como funciona o reconhecimento das palavras reservadas, na maioria das linguagens de programação.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Sobre a Linkedição, assinale a alternativa correta.
I. Não obstante a linguagem de máquina gerada por um compilador possa ser executada diretamente no hardware, quase sempre ela deve ser executada juntamente com algum outro código.
II. A maioria dos programas de usuário não exige programas do Sistema Operacional.
III. Durante o processo de Linkedição, o compilador cria chamadas a programas do sistema operacional.
IV. O código de usuário e o de sistemas juntos, às vezes, são chamados de módulos de carga ou imagem de executável.
V. O Linkeditor é uma parte do Compilador.
a) As alternativas I, II e III são verdadeiras.
b) Somente as alternativas I e III são verdadeiras.
c) Somente as alternativas II e V são falsas.
d) As alternativas II, III e V são falsas.
e) NDA.

Assinale a alternativa correta:
I. Uma gramática é do tipo Regular, se cada produção é da forma: A::= aB; A ::= a ou A ::= ; onde A e B são não terminais e a é um terminal.
II. A Gramática Livre do Contexto (GLC) admite apenas regras de produção cujo lado esquerdo contém exatamente um não-terminal.
III. Nas Gramáticas Sensíveis ao Contexto o símbolo inicial S pode aparecer tanto no lado direito, quanto no esquerdo das regras de produção.
IV. Nas Gramáticas Sensíveis ao Contexto o lado direito da produção é menor ou igual (<=) ao lado esquerdo, com exceção da regra S ::= .
V. Uma linguagem com dois ou mais símbolos terminais que possuem uma relação quantitativa e posicional não pode ser representada por uma Gramática Regular.
a) Somente as alternativas I e II são verdadeiras.
b) As alternativas I, II e V são verdadeiras.
c) As alternativas I, III e IV são falsas.
d) As alternativas I, II e III são verdadeiras.
e) NDA.

Explique o que é feito no processo de "scanning" do Analisador Léxico.

No que diz respeito à recuperação de erros da análise léxica, existem estratégias comuns que podem ser implementadas a fim de levá-las a efeito. No entanto, tais estratégias podem ser um tanto arriscadas. Explique com suas palavras o porquê disso.

Qual é a razão principal para que códigos-fonte totalmente ou parcialmente interpretados executem mais lentamente que os compilados?

No contexto de implementação de linguagens de programação, dê o significado dos seguintes termos: montador, cross-compiler e pré-processador.

Explique como funciona o reconhecimento das palavras reservadas, na maioria das linguagens de programação.

Prévia do material em texto

1
NOME: BRUNO FERNANDO STANKIEVICZ BELTRAME DATA: 24/03/2020
Leia o conteúdo da apostila contido nos itens 1.3 até 3.1.6 inclusive. Lembramos que o conteúdo presente
até a Tabela de Símbolos (figura 10) vimos em aula, e dos itens 2.2.1.1 até 3.1.6 (Erros Léxicos), fica a
critério do aluno a leitura e compreensão dos conteúdos, a fim de responder o questionário abaixo. No
entanto, recomenda-se a leitura de todo o conteúdo indicado.
Obviamente, este questionário aborda todos os conteúdos listados neste trecho da apostila, e contará
como presenças para as aulas dos dias 17/03 e 24/03. Sabemos que este exercício vem a colaborar com as
medidas preventivas ao COVID-19 mediante as ausências em virtude da paralisação das aulas, e ao
mesmo tempo minimizar as perdas relativas ao calendário acadêmico.
As respostas devem ser entregues individualmente via RM Portal até às 11:59 do dia 24/03.
1 Sobre a Linkedição, assinale a alternativa correta.
I. Não obstante a linguagem de máquina gerada por um compilador possa ser executada diretamente no
hardware, quase sempre ela deve ser executada juntamente com algum outro código.
II. A maioria dos programas de usuário não exige programas do Sistema Operacional.
III. Durante o processo de Linkedição, o compilador cria chamadas a programas do sistema operacional.
IV. O código de usuário e o de sistemas juntos, às vezes, são chamados de módulos de carga ou imagem de
executável.
V. O Linkeditor é uma parte do Compilador.
a) As alternativas I, II e III são verdadeiras.
b) Somente as alternativas I e III são verdadeiras.
c) Somente as alternativas II e V são falsas. 
d) As alternativas II, III e V são falsas.
e) NDA.
2 Assinale a alternativa correta:
I. Uma gramática é do tipo Regular, se cada produção é da forma: A::= aB; A ::= a ou A ::= ; onde A e B são
não terminais e a é um terminal.
II. A Gramática Livre do Contexto (GLC) admite apenas regras de produção cujo lado esquerdo contém
exatamente um não-terminal.
III. Nas Gramáticas Sensíveis ao Contexto o símbolo inicial S pode aparecer tanto no lado direito, quanto no
esquerdo das regras de produção.
IV. Nas Gramáticas Sensíveis ao Contexto o lado direito da produção é menor ou igual (<=) ao lado esquerdo,
com exceção da regra S ::= .
V. Uma linguagem com dois ou mais símbolos terminais que possuem uma relação quantitativa e posicional
não pode ser representada por uma Gramática Regular.
a) Somente as alternativas I e II são verdadeiras.
b) As alternativas I, II e V são verdadeiras.
c) As alternativas I, III e IV são falsas.
d) As alternativas I, II e III são verdadeiras.
e) NDA.
Universidade Regional Integrada do Alto Uruguai e das Missões
Campus de Erechim
Departamento das Engenharias e Ciência da Computação
Professor Fabio Zanin
Leitura e Questionário de revisão
2
3 Relacione os itens 1, 2 e 3 de acordo com as alternativas. 
1 – Implementação Compilada
2 – Interpretação Pura
3 – Interpretação Híbrida
( 1 ) – Gera um arquivo executável mais rápido (que executa mais rapidamente).
( 3 ) – Os erros de programação do arquivo fonte são mais fáceis de detectar.
( 2 ) – Os erros do arquivo fonte sempre acontecem em tempo de execução.
( 3 ) – É o método que provê maior portabilidade aos programas.
( 2 ) – Tende a ser o processo mais demorado.
( 1 ) – Garante a geração de programas mais livre de erros.
( 3 ) – Possui verificação parcial dos erros de programação.
4 Sobre Processadores de Linguagens, assinale a alternativa correta.
I. Um processador é um programa que, a partir de tradução ou interpretação, permite ao computador
entender os comandos de alto nível escritos pelos usuários.
II. Um tradutor é um programa que aceita como entrada um programa escrito em uma linguagem chamada
"linguagem fonte" e executa diretamente as instruções dadas nesta linguagem.
III. Os montadores e os compiladores são tipos de interpretadores.
IV. O pré-processador é um tipo de interpretador.
V. Um Sistema de Processamento de Linguagens pode conter o uso de vários processadores para traduzir o
programa fonte em um programa objeto.
a) Somente a alternativa I é verdadeira.
b) Somente as alternativas I e V são verdadeiras.
c) As alternativas I, II, III e V são verdadeiras.
d) As alternativas I, III e IV são falsas.
e) NDA.
5  Explique o que é feito no processo de "scanning" do Analisador Léxico.
Realiza a varredura dos caracteres, um de cada vez, incluindo no estado em que eles se 
encontram e converte para uma sequência de tokens, é nesse processo que são 
reconhecidas as palavras reservadas.
6 No que diz respeito à recuperação de erros da análise léxica, existem estratégias comuns que podem
ser implementadas a fim de levá-las a efeito. No entanto, tais estratégias podem ser um tanto arriscadas.
Explique com suas palavras o porquê disso.
As estratégias podem ser arriscadas quando não soubermos o tipo do problema a ser 
enfrentado, como, por exemplo, na estratégia de “Recuperação de frases” substituir “,” por 
“;”, remover um “;” estranho ou inserir um ausente, podem acabar gerando erros de
compilação.
3
7 Porque a separação dos módulos de um processo de compilação (análise léxica, sintática, semântica,
geração de código intermediário, etc) contribui para o aumento da eficiência dos compiladores em geral?
A separação das análises léxica e sintática frequentemente nos permite simplificar uma ou 
outra dessas fases do processo de compilação. Por exemplo, um parser que incorpore as
convenções para comentários e espaços em branco é significativamente mais complexo do
que um que assuma que os mesmos já tenham sido removidos pelo analisador léxico.
8 Qual é a razão principal para que códigos-fonte totalmente ou parcialmente interpretados executem
mais lentamente que os compilados?
Por conta da decodificação das instruções de alto nível, bem mais complexas do que as 
instruções em linguagem de máquina.
9 No contexto de implementação de linguagens de programação, dê o significado dos seguintes termos:
montador, cross-compiler e pré-processador.
Montadores: convertem as linguagens de baixo nível e linguagens de alto nível; 
Cross-compiler que gera código para outra máquina diferente da utilizada para compilação
Pré-processador: que traduz uma linguagem de alto nível em outra linguagem de alto nível;
10 Diferencie CLASSE, VALOR e POSIÇÃO; dando 1 exemplo de cada.
Classe  Classe representa o tipo do token, como por exemplo, constantes, 
Identificadores, palavras reservadas, entre outros.
Valor  O valor depende da classe, representado pelo conjunto de valores os quais a 
Classe solicita. Por exemplo para constante inteira, o valor deve ser um número inteiro.
Posição  Indica o local onde ocorreu o token. Muito utilizada para identificar o local
De ocorrência de erros.
11 Além da “modalidade pânico”, existem outras possíveis ações de recuperação de erros que são:
Remover um caractere estranho;
Inserir um caractere ausente;
Substituir um caractere incorreto por um correto;
Transpor dois caracteres adjacentes.
4
12 Porque a “modalidade pânico” pode ocasionalmente confundir o parser (analisador sintático), mas
num ambiente de computação interativa pode ser razoavelmente adequada?
Pois nessa modalidade são removidos sucessivos caracteres da entrada remanescente até
que o analisador possa encontrar um token bem-formado, e para o parser os terminais não 
são símbolos do alfabeto, mas os próprios tokens.
13 Explique como funciona o reconhecimento das palavras reservadas, na maioria das linguagens de
programação.
As palavras ficam armazenadas em uma tabela interna, que é varrida a cada vez que um 
identificador é reconhecido. Se o identificador ocorre na tabela, então se trata de uma 
palavra reservada, caso contrário, trata-se de um identificador.
14 Conceitue interpretador e processador, salientando as diferenças entre eles.
Processador é um programa que permite ao computador “entender” os comandos de alto 
nível escritos pelos usuários já um interpretadoré um programa que aceita como entrada um 
programa escrito em uma linguagem chamada linguagem fonte e executa diretamente as 
instruções dadas nesta linguagem.

Mais conteúdos dessa disciplina