Sobre o gerador de analisador léxico, LEX, julgue as questõe...

Próximas questões
Com base no mesmo assunto
Q253097 Programação
Sobre o gerador de analisador léxico, LEX, julgue as questões a seguir.


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:

Alternativas

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