Tabla de contenido:
Definición - ¿Qué significa Parser?
Un analizador es un componente de compilador o intérprete que divide los datos en elementos más pequeños para facilitar la traducción a otro idioma. Un analizador toma la entrada en forma de una secuencia de tokens o instrucciones de programa y generalmente construye una estructura de datos en forma de un árbol de análisis o un árbol de sintaxis abstracta.
Techopedia explica Parser
Un analizador se usa comúnmente como un componente de un intérprete o un compilador. El proceso general de análisis incluye tres etapas:
- Análisis léxico: un analizador léxico se utiliza para producir tokens a partir de una secuencia de caracteres de cadena de entrada, que se dividen en pequeños componentes para formar expresiones significativas.
- Análisis sintáctico: Comprueba si los tokens generados forman una expresión significativa. Esto hace uso de una gramática libre de contexto que define procedimientos algorítmicos para componentes. Estos trabajan para formar una expresión y definir el orden particular en el que se deben colocar los tokens.
- Análisis semántico: la etapa de análisis final en la que se determinan el significado y las implicaciones de la expresión validada y se toman las acciones necesarias.
El propósito principal de un analizador es determinar si los datos de entrada pueden derivarse del símbolo de inicio de la gramática. En caso afirmativo, ¿de qué manera se pueden derivar estos datos de entrada? Esto se consigue de la siguiente manera:
- Análisis de arriba hacia abajo: implica buscar en un árbol de análisis para encontrar las derivaciones más a la izquierda de una secuencia de entrada mediante una expansión de arriba hacia abajo. Los ejemplos incluyen analizadores LL y analizadores de descenso recursivo.
- Análisis de abajo hacia arriba: implica reescribir la entrada al símbolo de inicio. Este tipo de análisis también se conoce como análisis de reducción de desplazamiento. Un ejemplo es un analizador LR.
Los analizadores son ampliamente utilizados en las siguientes tecnologías:
- Java y otros lenguajes de programación
- HTML y XML
- Lenguaje interactivo de datos y lenguaje de definición de objetos
- Lenguajes de bases de datos, como SQL
- Lenguajes de modelado, como el lenguaje de modelado de realidad virtual
- Lenguajes de script
- Protocolos, como HTTP y llamadas a funciones remotas de Internet
