Definição – o que significa o Parser?
Um analisador é um componente compilador ou interpretador que divide os dados em elementos menores para facilitar a tradução para outro idioma. Um analisador recebe a entrada na forma de uma sequência de tokens, comandos interativos ou instruções de programa e os divide em partes que podem ser usadas por outros componentes na programação.
Um analisador geralmente verifica todos os dados fornecidos para garantir que são suficientes para construir uma estrutura de dados na forma de uma árvore de análise ou uma árvore de sintaxe abstrata.
Definirtec explica Parser
Para que o código escrito em forma legível por humanos seja compreendido por uma máquina, ele deve ser convertido em linguagem de máquina. Essa tarefa geralmente é realizada por um tradutor (intérprete ou compilador). O analisador é comumente usado como um componente do tradutor que organiza o texto linear em uma estrutura que pode ser facilmente manipulada (árvore de análise). Para tanto, segue um conjunto de regras definidas denominado “gramática”.
O processo geral de análise envolve três etapas:
-
Análise lexical: Um analisador léxico é usado para produzir tokens a partir de um fluxo de caracteres de string de entrada, que são divididos em pequenos componentes para formar expressões significativas. Um token é a menor unidade em uma linguagem de programação que possui algum significado (como +, -, *, “função” ou “novo” em JavaScript).
-
Análise sintática: Verifica se os tokens gerados formam uma expressão significativa. Isso faz uso de uma gramática livre de contexto que define procedimentos algorítmicos para componentes. Eles trabalham para formar uma expressão e definir a ordem específica em que os tokens devem ser colocados.
-
Análise Semântica: O estágio final de análise em que o significado e as implicações da expressão validada são determinados e as ações necessárias são realizadas.
O objetivo principal de um analisador é determinar se os dados de entrada podem ser derivados do símbolo inicial da gramática. Em caso afirmativo, de que maneiras esses dados de entrada podem ser derivados? Isto é alcançado como se segue:
-
Análise de cima para baixo: Envolve pesquisar uma árvore de análise para encontrar as derivações mais à esquerda de um fluxo de entrada usando uma expansão de cima para baixo. A análise começa com o símbolo inicial que é transformado no símbolo de entrada até que todos os símbolos sejam traduzidos e uma árvore de análise para uma string de entrada seja construída. Os exemplos incluem analisadores LL e analisadores descendentes recursivos. A análise de cima para baixo também é chamada de análise preditiva ou análise recursiva.
-
Análise Bottom-Up: Envolve reescrever a entrada de volta ao símbolo inicial. Ele age ao contrário, traçando a derivação mais à direita de uma string até que a árvore de análise seja construída até o símbolo de início. Esse tipo de análise também é conhecido como análise de redução de deslocamento. Um exemplo é um analisador LR.
Analisadores são amplamente usados nas seguintes tecnologias:
-
Java e outras linguagens de programação.
-
HTML e XML.
-
Linguagem de dados interativos e linguagem de definição de objetos.
-
Linguagens de banco de dados, como SQL.
-
Linguagens de modelagem, como a linguagem de modelagem de realidade virtual.
-
Linguagens de script.
-
Protocolos, como HTTP e chamadas de função remota da Internet.