Prévia do material em texto
Acerto: 0,2 / 0,2 O que faz a análise léxica? Tratar erros de tipo no programa fonte; Verifica se a estrutura gramatical do programa está correta; É um sistema que aceita como entrada um programa escrito em uma linguagem de programação e produz como resultado um programa equivalente em outra linguagem; Verifica se as estruturas do programa irão fazer sentido 4 durante a execução; Lê caractere por caractere do texto encontrando sequências que constituem tokens; Respondido em 02/10/2023 19:21:32 Explicação: A resposta correta é: Lê caractere por caractere do texto encontrando sequências que constituem tokens; Acerto: 0,2 / 0,2 Considerando a ciência da criação de um compilador, há vários objetos que são importantes para o processo de compilação. Esse é um componente importante para o processo e representa uma estrutura de dados que contém um registro para cada nome de variável, com campos para os atributos do nome. Assinale a alternativa que apresenta o nome desse componente. Tabela de Símbolos. Árvore de Sintaxe. Ligador (Linker). Fluxo de tokens. Otimizador de código. Respondido em 02/10/2023 19:24:12 Explicação: A tabela de símbolos é uma estrutura de dados utilizada pelo compilador para armazenar informações sobre nomes de variáveis, constantes, funções, etc. presentes no código fonte. Ela é construída durante a fase de análise sintática e mantida atualizada ao longo do processo de compilação. A tabela de símbolos é importante pois permite ao compilador realizar verificações de semântica, alocação de memória, geração de código objeto, entre outras tarefas. Acerto: 0,2 / 0,2 (CESGRANRIO/2012) 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: árvore AVL árvore sintática gramática livre de contexto fluxo (stream) de tokens Questão1a Questão2a Questão3a gramática dirigida a sintaxe Respondido em 02/10/2023 19:25:42 Explicação: A Árvore Sintática é útil na análise sintática, pois permite verificar a correta ordenação dos tokens e a estrutura da sentença de forma visual e fácil de entender. Além disso, a Árvore Sintática pode ser usada como base para a geração de código em outras etapas do processo de compilação. Acerto: 0,2 / 0,2 As árvores de sintaxe são a forma mais comum de representação intermediária gráfica. Dentre estas árvores temos as de Derivação, Sintática e Derivação Anotada. Com relação a estas árvores avalie as afirmativas abaixo: I. Decorar uma árvore é o ato de, durante a fase de parser, realizar a associação dos símbolos aos seus atributos na árvore de derivação. II. A Árvore Sintática é obtida eliminando-se os nós referentes aos símbolos não terminais na árvore de derivação. III. A árvore de Derivação possui em suas folhas apenas símbolos não terminais. Podemos afirmar que está correto o que se afirma apenas em: I e III II III I e II II e III Respondido em 02/10/2023 19:26:41 Explicação: Resposta correta: I e II. A ideia básica é eliminar todos os nós com símbolos não terminais, mantendo apenas os nós com símbolos terminais. Na árvore de Derivação, cada nó é rotulado por um símbolo da gramática, sendo que os símbolos terminais aparecem nas folhas e os não terminais, nas raízes das subárvores. Acerto: 0,2 / 0,2 Um programa pode ter parte de sua funcionalidade implementada por um procedimento. Procedimentos são normalmente compilados a parte e depois ligados ao código principal. Quando um procedimento é chamado é criado para ele um Registro de Ativação que possui informações de contexto, suas variáveis locais, parâmetros etc. Com base nisso se um procedimento G chama um procedimento D que chama um procedimento E podemos afirmar que O registro de ativação de E estará no topo da pilha Porque Questão4a Questão5a Os registros de ativação dos diversos procedimento são empilhados na ordem inversa do retorno Com base nas afirmativas acima podemos concluir que: As duas são corretas e a segunda não justifica a primeira A primeira é falsa e a segunda correta A primeira é verdadeira e a segunda falsa As duas são corretas e a segunda justifica a primeira As duas afirmativas são falsas Respondido em 02/10/2023 19:31:03 Explicação: Resposta correta: A primeira é verdadeira e a segunda falsa Acerto: 0,2 / 0,2 (ITEP - RN/2018 - Adaptada) Sobre o funcionamento e as características dos compiladores e interpretadores, assinale a alternativa correta. O interpretador converte o código todo para um código-objeto. Esse código objeto é uma tradução do código para uma linguagem que o computador entende. Uma vez que um compilador gera com sucesso um código-objeto, este último pode ser executado diretamente pelo computador. O código-objeto é a entrada para o compilador, o qual compila esse código-objeto gerando um arquivo binário. Um compilador lê, linha por linha, o código do programa, executando a instrução específica de cada linha. O código-objeto é a entrada para o interpretador, o qual executa o programa. Respondido em 02/10/2023 19:32:50 Explicação: Um compilador gera um código-objeto a partir do código fonte, que pode ser executado diretamente pelo computador após ser gerado com sucesso. O código-objeto é uma versão traduzida do programa em uma linguagem de baixo nível compreendida pelo computador. Acerto: 0,2 / 0,2 (CESPE/CEBRASPE/2022 - Adaptada) Autômatos são estruturas matemáticas que representam uma máquina de estados finitos. Eles são usados para modelar processos computacionais, como a validação de entradas de linguagens formais (por exemplo, verificar se uma string é uma sentença válida em uma dada linguagem), e para implementar algoritmos em processamento de linguagem natural e inteligência artificial. Nesse sentido, o autômato finito determinístico. permite zero, uma ou n transições para os estados de entrada. corresponde à função de transição que recebe um estado ou um símbolo de entrada que sempre retorna um conjunto de estados como resultado. tem a capacidade de adivinhar algo sobre sua entrada ao testar valores. pode, para cada entrada, transitar a partir do seu estado atual em um e somente um estado. consegue estar em vários estados ao mesmo tempo. Questão6a Questão7a Respondido em 02/10/2023 19:34:24 Explicação: Um Autômato Finito Determinístico é um autômato no qual para cada estado e para cada entrada só há zero ou uma transição possível. Existem vários tipos de autômatos, como autômatos finitos determinísticos (DFA), autômatos finitos não-determinísticos (NFA), autômatos de Pilha, autômatos de Estados Múltiplos (Mealy) e autômatos de Estados Moore. Cada tipo de autômato é adequado para uma tarefa específica e é projetado para atender a determinadas restrições computacionais e de tempo de execução. Acerto: 0,2 / 0,2 Autômatos finitos são equivalentes a gramáticas livres de contexto. O que são gramáticas livres de contexto (GLC)? Gramáticas que descrevem linguagens regulares. Gramáticas que descrevem linguagens ambíguas. Gramáticas que descrevem apenas frases curtas e simples. Gramáticas que não dependem do contexto em que a frase ou palavra é usada. Gramáticas que descrevem apenas linguagens formais. Respondido em 02/10/2023 19:35:43 Explicação: As gramáticas livres de contexto (GLC) são gramáticas formais que descrevem a estrutura sintática de uma linguagem sem considerar o contexto em que as palavras ou frases são usadas. Isso significa que as regras da GLC determinam a estrutura sintática de uma frase independentemente do significado das palavras ou do contexto em que elas são usadas. Acerto: 0,2 / 0,2 (PEFOCE/2012 - Adaptada) Levando em consideração o processo de compilação, avalie as assertivas a seguir: I. A tabela de símbolos utilizada no processo de compilação contém informações sobre tipose atributos de cada nome definido pelo usuário no programa. II. Essas informações são colocadas na tabela de símbolos pelos analisadores léxico e sintático e usadas pelo analisador semântico e pelo gerador de código. III. Compiladores são ferramentas de software que convertem código fonte escrito em uma linguagem de programação para código de máquina, que pode ser executado pelo computador. Marque a alternativa correta. III, apenas. II, apenas. I, II e III. I, apenas. I e II, apenas. Respondido em 02/10/2023 19:37:26 Explicação: Questão8a Questão9a Compiladores são ferramentas de software que convertem código fonte escrito em uma linguagem de programação para código de máquina, que pode ser executado pelo computador. O processo de compilação inclui verificação de erros sintáticos e semânticos no código fonte e geração de um arquivo executável que contém instruções que o processador do computador entende. Acerto: 0,2 / 0,2 Variáveis são espaços de memória que são usados para armazenar dados ou informações em um programa de computador. Elas têm um nome (ou identificador) que é usado para acessá-las e podem ter diferentes tipos de dados associados a elas, como números, strings de texto, booleanos, entre outros. Avalie o código abaixo escrito em linguagem C Onde as variáveis float nota1, nota2 seriam alocadas? No heap. Na área de dados estáticos. No código-objeto. Na fila. Na memória secundária. Respondido em 02/10/2023 19:41:09 Explicação: As variáveis float nota1 e nota2 são variáveis globais e estão declaradas fora da função principal. Sendo assim, elas serão alocadas na área de dados estáticos. Questão10a