Diseño e implementación de un generador de evaluadores concurrentes para gramáticas de atributos NC(1) - Arroyo, Marcelo (2002)
En este trabajo se presenta el diseño e implementación de NCE-val: un generador estático de evaluadores concurrentes de gramáticas de atributos para la familia NC (1). Los evaluadores generados son del tipo multiplan multivisita y utilizan información computada estáticamente para la selección de planes de evaluación y segmentos o conjuntos de atributos independientes en el árbol sintáctico de entrada. Los segmentos o regiones se evalúan concurrentemente y su independencia hace que no se requiera ningún mecanismo de sincronización ni comunicación entre procesos. La clasificación de las gramáticas de atributos NC (non-circular) –propuesta por Wuu Yang en [Yan991]- cubre el conjunto de las gramáticas de atributos bien definidas en una jerarquía denominada NC (n) (non-circular with n lookahead symbols). Estas gramáticas pueden ser evaluadas por métodos estáticos multivisita. La familia NC (0) se corresponde con al familia ANCAG (Absolutely Non-Circular Attribute Grammars), la familia NC (1) contiene a la familia que permitía generar evaluadores estáticos eficientemente) y la familia NC (∞) se corresponde con las WDAG (Well Defined Attribute Grammars). El particionado de las instancias de atributos en un árbol atribuido en regiones disjuntas se basa en el algoritmo propuesto en [Yan992], el cual produce la partición más fina posible de los atributos de la gramática estáticamente los planes de evaluación proyectados en función de las posibles particiones. El diseño de NCDEval y el modelo de evaluación es orientado a objetos y ha sido implementado en Java.