Estoy leyendo un libro de compilación y estoy un poco confundido cuando dice "una gramática de atributo S también es una gramática de atributo L". No pude entender ¿Alguien puede aclararlo (un ejemplo debería ser genial)? Gracias.¿Qué significa la gramática S atribuida y atribuida a L?
Respuesta
gramáticas atribuidas-Sgramáticas con atributos son un tipo especial de las gramáticas de atributos. Permiten que los atributos se evalúen en un recorrido de izquierda a derecha del árbol de sintaxis abstracta. Como resultado, la evaluación de atributos en las gramáticas atribuidas a L se puede incorporar convenientemente en el análisis de arriba hacia abajo. Muchos lenguajes de programación tienen L atribuido. Los tipos especiales de compiladores, los compiladores estrechos, se basan en alguna forma de gramática atribuida a L. Estos son comparables con las gramáticas atribuidas a S. Usado para síntesis de código.
son una clase de gramáticas de atributos que se caracterizan por no tener atributos heredados. Los atributos heredados, que se deben pasar de los nodos principales a los nodos secundarios del árbol de sintaxis abstracta durante el análisis semántico del proceso de análisis, son un problema para el análisis ascendente porque en el análisis ascendente, los nodos principales de la sintaxis abstracta árbol se crean después de la creación de todos sus hijos. La evaluación de atributos en gramáticas atribuidas a S se puede incorporar convenientemente tanto en el análisis sintáctico de arriba hacia abajo como en el análisis de abajo hacia arriba. Yacc se basa en el enfoque de atribución S.
Cualquier gramática atribuida a S es también una gramática atribuida a L.
En L-atribuido la evaluación de atributos de gramáticas se puede realizar en transversal de izquierda a derecha. Como en los atributos de las gramáticas atribuidas a S no se heredan, no impide que haga exactamente eso. Como tal, puedes decir que una gramática atribuida a S se ajusta a esa característica de una L-gramática.
Simplemente S-atribuida Gramática es la gramática que ha estrictamente Sintetizado tipo de gramática único medio que tiene el atributo de valor a lo largo del árbol de análisis
donde como la gramática con atributos puede tener ambas cosas sintetizado, así como la gramática heredada con algunos de las reglas como una que tiene la transferencia de herencia de siempre de izquierda a derecha. Creo que te ayudará.
- 1. La cadena atribuida de NSTextField se retrasa en la representación
- 2. ¿Qué significa "ulimit -l"?
- 3. atributo personalizado en la propiedad - Conseguir tipo y valor de la propiedad atribuida
- 4. en ps -l, ¿qué significa wchan = stext?
- 5. ¿Qué significa "s" en la estructura?
- 6. ¿Qué significa% s en Python?
- 7. ¿Qué significa "%. * S" en printf?
- 8. ¿Qué significa [\ S \ s] * en regex en PHP?
- 9. ¿Qué significa el especificador de formato% * s?
- 10. ¿Qué significa el código fuente^L in (Emacs Lisp)?
- 11. ¿Qué significa este código (s, e)?
- 12. Una gramática que acepta el conjunto vacío por la regla S-> S
- 13. ¿Qué significa "L" al final de un literal entero?
- 14. ¿Qué hace L?
- 15. ¿Convertir la gramática a Chomsky Normal Form?
- 16. ¿Cómo funciona el combinador Y ("L L ...)" Jan Willem Klop?
- 17. ¿Qué es M y L en GeometryDrawing?
- 18. Gramática de expresiones aritméticas y Analizador
- 19. ¿Qué nombres de directorios '.' y '..' significa y ¿qué significa faDirectory?
- 20. grep -l y grep ln
- 21. ¿Qué significa% S en PHP, HTML o XML?
- 22. Alternativas a xargs -l
- 23. ¿Qué significa "# $" en bash?
- 24. ¿Qué significa la 'L' en frente de una cadena en C++?
- 25. ¿Qué tan lentos son C, F, L, l y M de PatternLayout (log4j)?
- 26. ¿Cuál es la diferencia entre [\ s \ S] *? y. *?
- 27. ¿Qué significa realmente EnumSet?
- 28. ¿Qué significa la operación c = a +++ b?
- 29. Convertir la gramática Antlr simple a Xtext
- 30. ¿Qué significa la reubicación R_X86_64_32S y R_X86_64_64?