Diferencia entre el análisis de arriba hacia abajo y de abajo hacia arriba

los diferencia clave entre arriba hacia abajo y de abajo hacia arriba el análisis es que el De arriba hacia abajo el análisis realiza el análisis desde el símbolo de inicio hasta la cadena de entrada, mientras que el análisis de abajo hacia abajo realiza el análisis desde la cadena de entrada hasta el símbolo de inicio. Además, otra diferencia importante entre el análisis de arriba hacia abajo y de abajo hacia arriba es que el análisis de arriba hacia abajo utiliza la derivación más a la izquierda y el análisis de abajo hacia abajo utiliza la derivación más a la derecha.

Los lenguajes de alto nivel ayudan a escribir programas de computadora. Son más fáciles de entender por el programador pero no por la computadora. Por lo tanto, el programa de alto nivel se convierte en código de máquina. La tarea del compilador es convertir el código fuente legible por humanos a un código de máquina legible por máquina. Un programa pasa por varios pasos para convertir a código de máquina. Todo este proceso se llama sistema de procesamiento de lenguaje. Una de ellas es la compilación. El analizador de sintaxis o el analizador está en el compilador y realiza la tarea de análisis.

CONTENIDO

1. Resumen y diferencia clave
2. Que es Top Down Parsing
3. ¿Qué es el análisis de abajo hacia arriba?
4. Comparación lado a lado: de arriba hacia abajo y de abajo hacia arriba Análisis en forma de tabla
5. Resumen

Que es Top Down Parsing?

Cada lenguaje de programación tiene un conjunto de reglas para representar el lenguaje. El analizador de sintaxis o el análisis toma la cadena de entrada y verifica si está de acuerdo con las producciones gramaticales. En otras palabras, la gramática debe producir esa cadena usando un árbol de análisis..

En el análisis de arriba hacia abajo, el análisis se realiza desde el símbolo de inicio y alcanzará la cadena de entrada dada. Considere las siguientes reglas de producción gramatical. La cadena de entrada (w) es cad.

S -> cAd

A -> ab / a

El árbol de análisis después de realizar el análisis de arriba a abajo es el siguiente.

Figura 01: Árbol de análisis 1 con análisis de arriba hacia abajo

S produce c A d y A produce a b. La cuerda es cabd. No es la cadena requerida. Por lo tanto, es necesario hacer backtracking, que es utilizar las otras alternativas..

Del mismo modo, S produce c A d. La aplicación de la otra opción para A dará un. Ahora le da la cadena requerida. Por lo tanto, el analizador acepta esta cadena de entrada. El árbol de análisis después de realizar el análisis de arriba a abajo es el siguiente.

Figura 02: Árbol de análisis 2 con análisis de abajo hacia arriba

Cuando la cadena de entrada (w) es abbcde

Considera las siguientes reglas de producción gramatical..

S -> aABe

A -> Abc / b

B -> d

En el análisis de arriba hacia abajo,

S -> aABe (Sustituyendo A -> Abc)

S -> aAbcBe (Sustituyendo A -> b)

S -> abbcBe (Sustituyendo B -> d)

S -> abbcde

La sustitución comienza con la variable más a la izquierda primero, luego a la siguiente posición correcta y así sucesivamente. Por lo tanto, sigue un método de derivación más a la izquierda. Además, es importante decidir qué regla de producción elegir cuando hay una variable.

¿Qué es el análisis de abajo hacia arriba??

En el análisis de abajo hacia arriba ocurre de la otra manera. El análisis se realiza desde la cadena de entrada hasta el símbolo de inicio. Considere las siguientes reglas de producción de gramática y deje que la cadena de entrada sea w ɛ cad

S -> cAd

A -> ab / a

El árbol de análisis después de realizar el análisis de abajo hacia arriba es el siguiente.

Figura 03: Árbol de análisis con análisis de abajo hacia arriba

La cadena dada es cad. La a es generada por A. La c, A y d se combinan para obtener el símbolo de inicio S.

Cuando la cadena de entrada (w) es abbcde

Considera las siguientes reglas de producción gramatical..

S -> aABe

A -> Abc / b

B -> d

En el análisis de abajo hacia arriba,

S -> aABe (Sustituyendo B -> d)

S -> aAde (Sustituyendo A -> Abc)

S -> aAbcde (Sustituyendo A -> b)

S -> abbcde

La sustitución comienza con la variable más a la derecha primero y luego se mueve a la siguiente posición a la izquierda y así sucesivamente. Por lo tanto, sigue un método de derivación de mot izquierda..

¿Cuál es la diferencia entre el análisis de arriba hacia abajo y de abajo hacia arriba??

El análisis descendente es una estrategia de análisis que primero se ve en el nivel más alto del árbol de análisis y funciona en el árbol de análisis utilizando las reglas de una gramática formal. El análisis de abajo hacia arriba es una estrategia de análisis que primero analiza el nivel más bajo del árbol de análisis y desarrolla el árbol de análisis utilizando las reglas de una gramática formal. El análisis se produce desde el símbolo de inicio hasta la cadena de entrada, en el análisis de arriba hacia abajo. Por otro lado, el análisis se produce desde la cadena de entrada hasta el símbolo de inicio, en el análisis de abajo hacia arriba.

Además, la decisión principal en el análisis de arriba hacia abajo es seleccionar qué regla de producción usar para construir la cadena, mientras que la decisión principal en el análisis de abajo hacia abajo es seleccionar cuándo usar una regla de producción para reducir la cadena y obtener el símbolo inicial. Además, el análisis de arriba abajo utiliza la derivación más a la izquierda y el análisis de abajo hacia abajo utiliza la derivación más a la derecha.

Resumen - Top Down vs Bottom Up Parsing

La diferencia entre el análisis de arriba abajo y de abajo arriba es que el análisis de arriba abajo realiza el análisis desde el símbolo de inicio hasta la cadena de entrada, mientras que el análisis de abajo hacia abajo realiza el análisis desde la cadena de entrada hasta el símbolo de inicio..

Referencia:

1. “Conferencia de diseño de compilador 5 - Introducción a los analizadores y LL (1) Análisis”. Lectura de diseño de compilador 5 - Introducción a los analizadores y LL (1) Análisis, Gate Lectures by Ravindrababu Ravula, 22 de mayo de 2014. Disponible aquí