Definición - ¿Qué significa Analizador?
Un analizador es un componente compilador o intérprete que divide los datos en elementos más pequeños para traducirlos fácilmente a otro idioma. Un analizador toma la entrada en forma de una secuencia de tokens, comandos interactivos o instrucciones de programa y los divide en partes que pueden ser utilizadas por otros componentes en la programación.
Un analizador generalmente verifica todos los datos proporcionados para asegurarse de que sean suficientes para construir una estructura de datos en forma de árbol de análisis sintáctico o árbol de sintaxis abstracta.
Techinfo explica Parser
Para que el código escrito en forma legible por humanos sea entendido por una máquina, debe convertirse en lenguaje de máquina. Esta tarea generalmente la realiza un traductor (intérprete o compilador). El analizador se utiliza comúnmente como un componente del traductor que organiza el texto lineal en una estructura que se puede manipular fácilmente (árbol de análisis). Para hacerlo, sigue un conjunto de reglas definidas llamadas "gramática".
El proceso general de análisis comprende tres etapas:
-
Análisis léxico: Se utiliza un analizador léxico para producir tokens a partir de un flujo de caracteres de cadena de entrada, que se dividen en pequeños componentes para formar expresiones significativas. Un token es la unidad más pequeña en un lenguaje de programación que posee algún significado (como +, -, *, "función" o "nuevo" en JavaScript).
-
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 funcionan para formar una expresión y definir el orden particular en el que se deben colocar los tokens.
-
Análisis semántico: La etapa final de análisis 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 un árbol de análisis sintáctico para encontrar las derivaciones más a la izquierda de un flujo de entrada mediante una expansión de arriba hacia abajo. El análisis comienza con el símbolo de inicio que se transforma en el símbolo de entrada hasta que se traducen todos los símbolos y se construye un árbol de análisis para una cadena de entrada. Los ejemplos incluyen analizadores de LL y analizadores de descendencia recursiva. El análisis de arriba hacia abajo también se denomina análisis predictivo o análisis recursivo.
-
Análisis de abajo hacia arriba: Implica reescribir la entrada de nuevo al símbolo de inicio. Actúa a la inversa trazando la derivación más a la derecha de una cadena hasta que el árbol de análisis se construye hasta el símbolo de inicio. Este tipo de análisis también se conoce como análisis por desplazamiento-reducción. Un ejemplo es un analizador LR.
Los analizadores se utilizan ampliamente en las siguientes tecnologías:
-
Java y otros lenguajes de programación.
-
HTML y XML.
-
Lenguaje de datos interactivo 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 secuencias de comandos.
-
Protocolos, como HTTP y llamadas a funciones remotas de Internet.