Aplicación de traducción dirigida por sintaxis

En este artículo, vamos a cubrir la aplicación de traducción dirigida por sintaxis donde también veremos un ejemplo real y cómo se puede resolver el problema con estas aplicaciones. vamos a discutir uno por uno.

Requisito previo: Introducción a la traducción dirigida por sintaxis

Traducción dirigida por sintaxis:
se utiliza para el análisis semántico y SDT se utiliza básicamente para construir el árbol de análisis sintáctico con acción gramatical y semántica. En Gramática, la necesidad de decidir quién tiene la prioridad más alta se hará primero y En la acción semántica, se decidirá qué tipo de acción realiza la gramática.

Ejemplo :

SDT = Grammar+Semantic Action
Grammar = E -> E1+E2  
Semantic action= if (E1.type != E2.type) then print "type mismatching"

Aplicación de traducción dirigida por sintaxis:

  • SDT se utiliza para ejecutar expresiones aritméticas.
  • En la conversión de expresión infijo a sufijo.
  • En la conversión de expresión de infijo a prefijo.
  • También se utiliza para la conversión de binario a decimal.
  • Al contar el número de Reducción.
  • En la creación de un árbol de sintaxis.
  • SDT se utiliza para generar código intermedio.
  • En el almacenamiento de información en la tabla de símbolos.
  • SDT también se usa comúnmente para la verificación de tipos.

Ejemplo:
aquí, vamos a cubrir un ejemplo de aplicación de SDT para comprender mejor los usos de la aplicación SDT. Consideremos un ejemplo de expresión aritmética y luego verá cómo se construirá SDT.

Consideremos que se da la expresión aritmética.

Input : 2+3*4
output: 14

SDT para el ejemplo anterior.

SDT para 2+3*4

La acción semántica se da de la siguiente manera.

E -> E+T  { E.val = E.val + T.val then print (E.val)}
     |T   { E.val = T.val} 
T -> T*F  { T.val = T.val * F.val}
     |F   { T.val = F.val}
F -> Id   {F.val = id}

Publicación traducida automáticamente

Artículo escrito por Ashish_rana y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *