-
A) Analisador léxico: é o responsável pela identificação dos vários símbolos (tokens) existentes no código fonte de um programa. Ele
também é conhecido pelo nome de scanner, uma vez que sua função é 'varrer' o código fonte a procura de erros de grafia no programa.
Como é o analisador léxico quem opera sobre a tabela de strings, será ele também o responsável pela sua manutenção.
B) Analisador sintático: após a atuação do scanner o analisador sintático, ou parser, entra em ação para verificar se a ordem em que
aparecem os tokens é gramaticalmente correta. O produto lógico de um parser é uma árvore sintática abstrata, que é algo da forma a
seguir, em que os tokens assumem os nós terminais da árvore. As duas abordagens diferentes para a realização da análise sintática se
baseiam no caminho usado para percorrer a árvore sintática.
-
Analisador semântico: é o componente do compilador encarregado de fazer a análise semântica, ou correção de contexto, do que
estiver escrito no código fonte do programa. Ele atua, entre outras coisas, para verificar se as variáveis foram declaradas antes de serem
usadas, compatibilidade de tipos em chamadas de funções, compatibilidade de tipos em atribuições de valor, etc. Durante sua atuação
ele utiliza de forma intensa a chamada tabela de símbolos, que serve como um dicionário para se realizar a análise semântica do
programa.
-
Fases de um compilador:
1.Analisador léxico ou SCANNER
2.Analisador sintático ou PARSER
3.Analisador semântico
4.Gerador de código intermediário
5.Otimizador de código
6.Gerador de código
-
Lexico - Scanner
Sintático - Parser
-
Gabarito A
A análise léxica também conhecida como scanner ou leitura é a primeira fase de um processo de compilação e sua função é fazer a leitura do programa fonte, caractere a caractere, agrupar os caracteres em lexemas e produzir uma sequência de símbolos léxicos conhecidos como tokens.
A sequência de tokens é enviada para ser processada pela analise sintática que é a próxima fase do processo de compilação .
O analisador léxico deve interagir com a tabela de símbolos inserindo informações de alguns tokens, como por exemplo os identificadores. A nível de implementação a analise léxica normalmente é uma sub-rotina da análise sintática formando um único passo, porem ocorre uma divisão conceitual para simplificar a modularizarão do projeto de um compilador.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !