Saltar al contenido principal

Analizador Sintáctico

Un analizador sintáctico o parser (viene del inglés: parse – repasar una cadena o texto en componentes sintácticos lógicos) es un programa que normalmente es parte de un compilador. El compilador se asegura de que el código se traduce correctamente a un lenguaje ejecutable. La tarea del analizador es, para este caso, la descomposición y transformación de las entradas en un formato utilizable para su posterior procesamiento. Se analiza una cadena de instrucciones en un lenguaje de programación y después se descompone en sus componentes individuales.

Cómo funciona

Para repasar un texto, los analizadores suelen usar un analizador léxico separado (llamado lexer), que descompone los datos de entrada en fichas (símbolos de entrada como palabras). Los Lexers son por lo general máquinas de finitas, que siguen la gramática regular y de esta manera prometen un desglose adecuado. Los tokens obtenidos por ende sirven como caracteres de entrada para el analizador sintáctico.

El analizador actual maneja la gramática de los datos de entrada, realiza un análisis sintáctico de éstos y como norma general crea un árbol de sintaxis (árbol de análisis). Esto se puede usar para el procesamiento posterior de los datos, por ejemplo, la generación de código por un compilador o ejecutado por un intérprete (traductor). De este modo, el analizador es el software que comprueba, procesa y reenvía las instrucciones del código fuente.

AnalizadorSintactico-es-01.png

Ejemplo de un árbol de análisis

Tipos de analizadores

Existen simplemente dos métodos de análisis distintos, análisis de arriba hacia abajo (top-down) y análisis de abajo hacia arriba (bottom-up). Éstos difieren generalmente en el orden en el que se crean los items del árbol sintáctico.

  • De arriba a abajo: En el método top-down, el analizador trabaja en un método orientado a objetivos, lo que significa que busca a partir del símbolo de inicio de la sintaxis y busca una derivación sintáctica adecuada. De este modo, el árbol de análisis se desarrolla de arriba hacia abajo en la dirección de un desglose cada vez más detallado.
  • De abajo hacia arriba: El analizador ascendente comienza con el símbolo de la cadena de entrada e intenta determinar relaciones sintácticas cada vez mayores. Esto se hace hasta que el símbolo de inicio de la gramática se ha alcanzado.
Quizás te interesa >>>  TOFU

Apps

Un analizador sintáctico se usa habitualmente para convertir texto en una nueva estructura, por ejemplo, un árbol sintáctico, que expresa la disposición jerárquica de los items. En las siguientes apps el uso de un analizador es habitualmente esencial:

  • La lectura de un lenguaje de programación es realizada por un analizador. Proporciona una estructura de datos al compilador, con la que se puede generar el código máquina o bytecode.
  • El código HTML es al principio sólo una cadena de caracteres para un PC que debe ser analizada por el analizador contenido en el navegador web. Proporciona una descripción de la página web como una estructura de datos que puede ser proyectada por un motor de diseño en la pantalla.
  • Los analizadores especiales de XML son responsables del análisis de los documentos XML y preparan la información contenida en ellos para su uso posterior.
  • Los analizadores de URI descomponen esquemas complejos tales como URLs en su estructura jerárquica.
  • Los motores de búsqueda como Google extraen (analizan) texto relevante para ellos de las páginas web descargadas con rastreadores. Se procesan y los datos analizados se pueden usar para la navegación.

Conclusión

Hay más clasificaciones de los tipos de analizadores al mismo tiempo de la subdivisión explicada en el análisis de arriba hacia abajo y de abajo hacia arriba. Basándose en la gramática analizada, se pueden realizar mejores crawls en las páginas web con el analizador apropiado. Los motores de búsqueda siempre tratarán de aprovechar al máximo este procedimiento de análisis eficiente de la web para proporcionar al usuario resultados de búsqueda rápidos e informativos.

Enlaces Web

error: Atención: Contenido protegido.