Sobre o gerador de analisador léxico, LEX, julgue as questõe...
I - Permite especificar um analisador léxico definindo expressões regulares para descrever padrões para os tokens.
II - A função responsável por colocar os lexemas encontrados na tabela de símbolos se chama installLexem().
III - lexlval é uma variável global que pode ser usada pelo analisador sintático ou por outro componente posterior do compilador.
IV - O programa de entrada do LEX é compilado em um programa C, que sempre se chama lex.yy.c
Estão corretas:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - Apenas I e IV.
Primeiramente, vamos falar sobre o LEX, que é uma ferramenta utilizada para gerar analisadores léxicos, também conhecidos como scanners ou lexers. Esses analisadores têm a função de processar o texto de entrada e dividir em componentes chamados de tokens, de acordo com padrões definidos por expressões regulares.
A afirmação I está correta, pois o LEX realmente permite especificar um analisador léxico usando expressões regulares para definir os padrões que identificam os tokens. Isso é uma das principais funcionalidades do LEX, e é um exemplo clássico de aplicação de expressões regulares na Ciência da Computação.
Em relação à afirmação II, ela está incorreta porque o LEX não tem uma função específica com o nome installLexem() para inserir lexemas na tabela de símbolos. Geralmente, a manipulação da tabela de símbolos é uma tarefa do analisador sintático ou do próprio programador que adapta o código gerado pelo LEX.
Afirmativa III também é incorreta; o LEX não define a variável lexlval; o que é definido pelo LEX é a variável yylval, utilizada em conjunto com o YACC (Yet Another Compiler Compiler) ou outros geradores de analisadores sintáticos, para passar valores semânticos dos tokens para o analisador sintático.
Quanto à afirmação IV, ela está correta. Quando o LEX processa a especificação do analisador léxico, ele gera um código-fonte em C chamado lex.yy.c. Esse arquivo contém o código do analisador léxico que foi especificado para o LEX e pode ser compilado com um compilador de C para criar um executável.
Portanto, as afirmações I e IV são verdadeiras, e elas refletem corretamente o funcionamento do LEX como uma ferramenta de geração de analisadores léxicos e sua interação com o código em C, respectivamente. A alternativa D é a correta, endossando as afirmações I e IV.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
installID() é a função para instalar o lexema.
yylval é a variável global.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo