Una posible semántica operacional de alto nivel para lenguajes de generación de contenido dinámico en el contexto de aplicaciones web - Gallego Sagastume, Ignacio (2002)
En este trabajo se hace un análisis semántico (ver [Hen90] para introducción al tema, o [AC96] para ver definiciones alternativas y uso de este tipo de semánticas en teorías más avanzadas) de un conjunto de lenguajes seleccionados entre varios de interés en la actualidad, de los denominados de “generación de contenido dinámico” o de “generación dinámica de páginas” (para brevedad, de ahora en adelante lenguajes gcd). Una “posible semántica de alto nivel” es debido a que se hará abstracción de muchos detalles de implementación y además porque podrían existir otras definiciones semánticas compatibles para el mismo lenguaje (más precisas o mas cercanas a la implementación por ejemplo). Esto permitirá al lector idóneo (estudiante de grado de ciencias de la computación, o programador usuario del lenguaje, por ejemplo) entender claramente como funcionan los mecanismos de interpretación, compilación, y generación de los documentos que se obtienen como resultado de ejecutar un programa escrito en una familia de lenguajes gcd, como así también la semántica de las distintas instrucciones y construcciones sintácticas. Para tal propósito, se define un formalismo (un dominio semántico y una relación de reducción sobre él) que permitirá expresar características comunes de lenguajes gcd y comprender mejor su funcionamiento y sus diferencias. Este formalismo teórico pretende ser lo suficientemente preciso para no generar ambigüedades en las fórmulas propuestas, pero a la vez lo suficientemente simple, práctico y legible para permitir una aplicación directa en grupos de desarrollo o ambientes en donde se utilicen lenguajes gcd. Podría utilizarse esta notación para dotar al grupo humano de trabajo de una base teórica común para facilitar la compresión de una nueva tecnología a utilizar, como así también definir un esquema o marco de trabajo, facilitar la comunicación, permitir que los módulos sean independientes del programador (por lograr uniformidad de estilos de programación), potenciar la eficiencia del trabajo en equipo, la coherencia de resultados, y otros posibles beneficios esperados que se discutirán a lo largo del presente documento. Se discutirá también su posible utilidad y viabilidad de aplicación.