2010-04-12 17 views
8

En mi clase de posgrado en construcción de compiladores, hemos introducido el concepto de lattice. Se han dedicado tres conferencias a celosías y hasta ahora parece una tangente interesante, pero el dilema es que realmente no ayuda a explicar cómo un compilador usa una celosía para resolver un problema concreto.¿Cómo es un enrejado utilizado por un compilador

Ya hemos cubierto el análisis sintáctico y la verificación de tipos. Estamos a punto de comenzar el análisis de vida y registrar la asignación.

Nota, No estoy buscando recursos en compilación de compiladores. La siguiente lista de enlaces ha cubierto bastante bien. Lo que estoy buscando es una explicación sobre la relación entre compiladores y celosías, puntos de bonificación para la mayoría de los ejemplos.

Learning Resources on Parsers, Interpreters, and Compilers
How much of the compiler should we know?
Learning to write a compiler

+1

asegúrese de asistir a la clase próxima en el análisis de vivacidad, y ahora será de al menos un uso importante de celosías en los compiladores;) –

+0

que es casi cómo fue. "La próxima clase es sobre análisis de vida". Una semana después, "Discutamos los enrejados, reunámonos, únete, los límites inferiores más grandes, los límites superiores mínimos, ..." La siguiente clase, "Ahora que entiendes todo lo que necesitas saber sobre el análisis de vida ..." suplicaría que dormí durante la clase, excepto que tengo más de 10 páginas de notas. –

+0

Heh, recuerdo esas clases exactas de mi primer curso de compilación. El profesor presentó el tema como "Matemáticas extraterrestres" :-) –

Respuesta

4

Lattices son una estructura muy útil para representar el estado mientras se hace el análisis estático en el programa que está siendo compilado - por ejemplo. para eliminar código muerto detectado por análisis de vitalidad, expresiones disponibles/muy ocupadas, llegar a definiciones, análisis de signos y propagación constante.

Aquí es una muy buena lectura si desea que los detalles: Lecture Notes on Static Analysis

Cuestiones relacionadas