Índice:
Definição - O que significa Parser?
Um analisador é um componente do compilador ou intérprete que divide os dados em elementos menores para facilitar a tradução em outro idioma. Um analisador recebe entrada na forma de uma sequência de tokens ou instruções de programa e geralmente cria uma estrutura de dados na forma de uma árvore de análise ou de uma árvore de sintaxe abstrata.
Techopedia explica Parser
Um analisador é comumente usado como um componente de um intérprete ou compilador. O processo geral de análise envolve três estágios:
- Análise lexical: um analisador lexical é usado para produzir tokens a partir de um fluxo de caracteres de sequência de entrada, que são divididos em pequenos componentes para formar expressões significativas.
- 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 na qual 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 tomadas.
O principal objetivo de um analisador é determinar se os dados de entrada podem ser derivados do símbolo inicial da gramática. Se sim, então de que maneiras esses dados de entrada podem ser derivados? Isto é alcançado como se segue:
- Análise de cima para baixo: envolve a pesquisa em uma árvore de análise para encontrar as derivações mais esquerdas de um fluxo de entrada usando uma expansão de cima para baixo. Exemplos incluem analisadores LL e analisadores de descida recursiva.
- Análise de baixo para cima: envolve reescrever a entrada de volta ao símbolo de início. Esse tipo de análise também é conhecido como análise de redução de turno. Um exemplo é um analisador de LR.
Os analisadores são amplamente utilizados nas seguintes tecnologias:
- Java e outras linguagens de programação
- HTML e XML
- Linguagem interativa de dados e linguagem de definição de objeto
- Linguagens de banco de dados, como SQL
- Linguagens de modelagem, como linguagem de modelagem de realidade virtual
- Linguagens de script
- Protocolos, como chamadas de função remota HTTP e Internet
