Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 NOME:_____________________________________________________________ DATA:_________________ 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. 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 ( ) – Gera executável mais rápido. ( ) – Os erros de programação são fáceis de detectar. ( ) – Os erros sempre acontecem em tempo de execução. ( ) – É o método que provê maior portabilidade aos programas. ( ) – Tende a ser o mais demorado entre os três processos. ( ) – Garante programas mais livre de erros. ( ) – Possui verificação parcial de erros de programação. 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 Questionário de revisão 2 4 Sobre Processadores de Linguagens, assinale a alternativa correta. I. Um processador é um programa que 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. 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. 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? 8 Qual é a razão principal para que códigos-fonte totalmente ou parcialmente interpretados executem mais lentamente que os compilados? 3 9 No contexto de implementação de linguagens de programação, dê o significado dos seguintes termos: montador, cross-compiler e pré-processador. 10 Diferencie TOKEN, LEXEMA e PADRÃO; dando 1 exemplo de cada. 11 Além da “modalidade pânico”, existem outras possíveis ações de recuperação de erros que são: 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? 13 Explique como funciona o reconhecimento das palavras reservadas, na maioria das linguagens de programação. 14 Conceitue salientando as diferenças entre estes dois processadores de linguagens: o interpretador e o tradutor.
Compartilhar