Os compiladores foram responsáveis pela evolução da computação, sem eles não seria possível atingir o nível tecnológico atual. A facilidade que se propicia ao se programar utilizando uma linguagem mais próxima do ser humano é essencial para garantir a produtividade. Para estudar os compiladores é necessário diversas ferramentas que auxiliam no processo, evitando que seja necessário produzir todos os analisadores de gramática, analisadores de expressões regulares e outros. Em um sistema de estudo baseado em Java, temos o JFlex e Construction of Useful Parsers (CUP) que propiciam diversas facilidades para analisadores das etapas de compilação. A Tabela-1 contém parte da construção de um compilador utilizando o JFlex e CUP.
Tabela-1: Parte das instruções necessárias para a construção de um compilador utilizando JFlex e CUP.
"inicprogm" {return new Symbol(Sym.BEGIN); }"fimprogm" {return new Symbol(Sym.INICIO); }"integert" {return new Symbol(Sym.TYPE_INTT); }"doublet" {return new Symbol(Sym.TYPE_DOUBLET); }Fonte: Andrijauskas, 2018.
Assinale a alternativa que descreve corretamente qual é o papel das instruções da Tabela-1 no contexto apresentado.
Escolha uma:a. Os comandos apresentados fazem parte do analisador léxico (CUP), os tokens estão entre aspas e os símbolos são criados estão chaves e enviado para o JFLex.b. As instruções fazem parte do analisador sintático (JFlex), os elementos que estão entre aspas são tokens que serão enviados ao analisador semântico (CUP) para criação dos símbolos que estão entre chaves.c. O conjunto apresentado fazer parte do analisador semântico (CUP), eles são utilizados para verificar se o contexto do código (JFlex) que está sendo compilado está correto.d. Os comandos apresentados fazem parte de um conjunto do analisador léxico (JFlex), analisador sintático (CUP) e analisador semântico (JFlex), os comandos entre aspas são símbolos e os elementos entre chaves são tokens.e. As instruções apresentadas fazem parte do analisador léxico (JFlex), ao receber os itens entre aspas (tokens) o analisador léxico envia os símbolos que são apresentados pelos comandos entre chaves para o analisador sintático (CUP) .Soluções para a tarefa
c. O conjunto apresentado fazer parte do analisador semântico (CUP), eles são utilizados para verificar se o contexto do código (JFlex) que está sendo compilado está correto. (ERRADO)NO AVA
resposta correta
As instruções apresentadas fazem parte do analisador léxico (JFlex), ao receber os itens entre aspas (tokens) o analisador léxico envia os símbolos que são apresentados pelos comandos entre chaves para o analisador sintático (CUP) .