Baixe o app para aproveitar ainda mais
Prévia do material em texto
Galera, notem que eu errei 4 questões, a 1, 2, 3 e 6. Porém eu informei as respostas incorretas, então boa sorte para encontrar as respostas corretas, após isso contribua com esse conhecimento!!! 1) O Lex/Yacc é difundido no campo da programação, pois sua utilização, já na geração de compiladores, é extensa. Trata-se de ferramentas um pouco difíceis de serem utilizadas, principalmente no caso de programadores iniciantes. Dessa maneira, é correto afirmar que o Lex: Respostas erradas: É o mais tradicional gerador de analisadores léxicos e deve ser utilizado com sistemas operacionais Unix. Tem declarações do tipo Lex, e todas as importações e declarações globais sempre são realizadas em C 2) 2) Autômatos finitos é um sistema formal M = (K, Σ, d, e0, F), em que K é um conjunto finito não vazio de estados, Σ é o alfabeto de símbolos de entrada, d é a função de transição, e0 é o estado inicial (e0 Î K) e F é o conjunto de estados finais (F Í K), podendo ser representado por meio de diagramas de transição (DT) ou grafos de transição (GT), como também são conhecidos. MARTINS, J. Linguagens formais e compiladores. 43 f. Notas de Aula (Curso de Ciências da Computação) – Universidade Regional de Blumenau, Blumenau, SC, 2002. A partir disso, assinale a alternativa verdadeira sobre autômatos finitos. Respostas erradas: Um estado de autômato infinito é uma situação particular no processo de reconhecimento de uma cadeia somente. Um autômato finito é um modelo natural, do qual se pode usar como entrada um analisador léxico. 3) Um compilador é um programa que tem como entrada um texto escrito em uma determinada linguagem e produz como saída outro texto, escrito em uma outra linguagem, sem perder o significado do texto original. Se o texto estiver em linguagem natural, esse processo é chamado de tradução, por isso, os compiladores também são denominados tradutores. GRUNE, D. Projeto moderno de compiladores: implementação e aplicações. Tradução de Vanderberg D. de Souza. Rio de Janeiro: Campus, 2001. Levando em conta o texto anterior, marque a opção correta sobre compiladores. Respostas erradas: Um compilador pode ser dividido em duas partes distintas: uma denominada entrada e outra, saída. Os tokens são classificados em categorias, que podem ser apenas palavras reservadas 4) Os tokens são símbolos léxicos que serão reconhecidos por padrão e podem ser divididos em dois grupos distintos. As ferramentas são orientadas ao redor de modelos particulares de linguagem mais adequados para gerar compiladores ou similares ao modelo de interpretação. Sobre o reconhecimento dos tokens, marque a alternativa verdadeira. R: As ferramentas utilizadas na construção dos compiladores auxiliam na criação das rotinas que constituem o processo completo de um compilador. 5) Leia o trecho a seguir: “O processamento transformando uma linguagem descrita por uma sequência de caracteres em uma sequência de elementos léxicos, chamados tokens, é denominado análise léxica.” LANGLOIS, T. Compiladores: da teoria à prática. Rio de Janeiro: LTC, 2018. p. 17. Quando nos referimos a um token, temos como verdade que: R: o token também é conhecido como componente léxico. 6) Os autômatos finitos são os primeiros modelos computacionais de definição de linguagens que são definidos por mecanismo de reconhecimento. Sobre eles, assinale a alternativa correta. Respostas erradas: Um autômato finito determinístico possibilita construir um autômato finito não determinístico que realiza o mesmo processamento. Um autômato finito com movimento vazio é um autômato finito não determinístico que não aceita o símbolo vazio como entrada 7) Os compiladores são utilizados em diversas técnicas baseadas em outros escopos, como: conversão no formato de arquivos diferentes, leitura e/ou interpretação de arquivos HTML, dentre outros. Todos os compiladores são baseados em algoritmos e nas estruturas dos dados a serem traduzidos e/ou compilados. Sendo assim, em compiladores, podemos afirmar que: R: Quando definimos um algoritmo genérico, percebemos que ele é uma descrição finita dos processos de computação. 8) A partir da definição inicial dada: “No ramo da computação, a análise léxica, ou tokenização, é o caminho para transformar um agrupamento de caracteres em um arranjo de tokens (strings/palavras com um significado designado e, portanto, distinto). Um programa que realiza a análise léxica pode ser conhecido como lexer, tokenizer ou scanner, apesar de o scanner ser também um termo para a etapa inicial de um lexer”. BARBOSA, C. da S. et al. Compiladores. Porto Alegre: Sagah, 2021. p. 57. Dessa forma, podemos afirmar que, para a implementação das análises léxicas: R: a normalidade utiliza-se de tabelas e algoritmos. 9) Leia o trecho a seguir: “Durante a varredura, ocorre a análise léxica: sequências de caracteres são organizadas como unidades significativas denominadas marcas, que são como as palavras em uma linguagem natural como o inglês, por exemplo. Um sistema de varredura tem função similar à de um sistema para soletrar.” LODEUN, K. C. Compiladores: princípios e práticas. São Paulo: Cengage Learning, 2004. p. 22. A partir disso, sobre a análise léxica, podemos afirmar que ela: R: tem como função agrupar fluxos de letras e/ou sons. 10) Yacc, ou Yet Another Compiler-Compiler, é o gerador de analisadores sintáticos também desenvolvido para o Unix (por Johnson, em 1975). Ele aceita, em sua entrada, especificações de características sintáticas da linguagem de programação que contêm as ações semânticas de forma embutida e cria uma rotina em C utilizada na análise sintática. Dessa maneira, podemos afirmar que, no Yacc: R: com a utilização das regras gramaticais, é possível analisar os tokens do Lex e criar a árvore de sintaxe, a qual impõe a estrutura hierárquica dos tokens.
Compartilhar