Atributos heredados y sintetizados.
Atributos heredados:
Todos los atributos que se calculan según el principio de composicionalidad generalizado (usando al menos un atributo del contexto) se llaman atributos heredados.
Es la capacidad de compartir atributos y métodos entre clases. Es la propiedad que permite definir nuevas clases usando como base clases ya existentes. La nueva clase (clase derivada) hereda los atributos y comportamiento que son específicos de ella. La herencia es una herramienta poderosa que proporciona un marco adecuado para producir software fiable, comprensible, de bajo costo, adaptable y reutilizable. La herencia o relación es-un es la relación que existe entre dos clases, en la que una clase denominada derivada o subclase se crea a partir de otra ya existente, denominada clase base o superclase.
- Sirven para expresar la dependencia que hay entre una construcción del lenguaje de programación y su contexto.
- Siempre es posible reescribir una definición dirigida por sintaxis para que sea S-atribuida.
- En ocasiones es más natural utilizar atributos heredado
Ejemplo con atributos heredados.
Números en base X: Para interpretar un número hay que
saber interpretar sus dígitos y además conocer la base
Ej. AF3 = 2803)10 porque A=10, F=15, 3=3 y la base es 16
Ej. AF3 = 13503)10 porque A=10, F=15, 3=3 y la base es:
Atributos sintetizados:
Todos los atributos que se calculan según el principio de
composicionalidad se llaman atributos sintetizados
Ej. Los atributos anteriores lex y valor.
Las gramáticas de atributos que únicamente poseen
atributos sintetizados se llaman gramáticas s-atribuidas. La evaluación en una gramática s-atribuida se puede
hacer con un recorrido en postorden de los árboles
sintácticos atribuidos.
Los atributos sintetizados son como valores de salida de las
categorías sintácticas (suben hacia la raíz –el programa-),
mientras que los atributos heredados son como valores de
entrada (bajan hacia las hojas –las expresiones, etc.-).
excelente explicación.
ResponderEliminar