Publication:
Desarrollo dirigido por lenguajes de aplicaciones de procesamiento XML: especificación modular basada en gramáticas de atributos y generación automática

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2010
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
En este proyecto de investigación se estudia la incorporación de mecanismos de modularidad al entorno XLOP (XML Language‐oriented processing). XLOP es un entorno para el desarrollo de aplicaciones de procesamiento de documentos XML que permite especificar dichas aplicaciones mediante gramáticas de atributos, un formalismo ampliamente utilizado en la especificación de lenguajes informáticos. A partir de estas especificaciones, y de la implementación de las funciones semánticas utilizadas en las mismas, así como de la lógica específica adicional, XLOP permite generar automáticamente los programas que realizan el procesamiento. La principal ventaja de XLOP es promover una organización de las aplicaciones de procesamiento XML en dos capas bien diferenciadas: la capa lingüística, que media con la estructura gramatical de los documentos, y la capa de la lógica específica de la aplicación, que introduce el código adicional requerido, de forma que éste sea totalmente independiente de los detalles de procesamiento de dichos documentos. Así mismo, XLOP permite producir y mantener la capa lingüística utilizando especificaciones declarativas de muy alto nivel. No obstante, en la versión estable actual de XLOP, esta ventaja se ve obscurecida por su falta de modularidad. Efectivamente, la especificación de la capa lingüística se realiza mediante una única gramática monolítica, localizada en un único archivo. Este hecho dificulta el uso de XLOP durante el abordaje de tareas de procesamiento complejas. El objetivo de este proyecto es investigar en mecanismos que permitan resolver este inconveniente. Para ello, en este proyecto se propone, por una parte, mecanismos de modularización básicos, que permitan controlar los posibles conflictos de nombres que surgen en especificaciones complejas, facilitando, así mismo, la reutilización de diferentes módulos en distintas aplicaciones. Estos mecanismos están basados en un sencillo sistema de espacios de nombres para los símbolos no terminales de las gramáticas. Por otra parte, en el proyecto se investiga también cómo fraccionar las especificaciones en múltiples archivos, que contienen especificaciones más simples que se unen en base a las producciones de las gramáticas subyacentes. De esta forma, las especificaciones complejas se pueden modularizar en términos de múltiples aspectos semánticos. Llevada al límite, esta estrategia de modularización basada en aspectos semánticos puede conducir a la necesidad de disponer de múltiples sintaxis alternativas para el mismo lenguaje, cada una de las cuáles es apropiada para un determinado aspecto del procesamiento. En el proyecto se investiga cómo dar soporte a estos mecanismos flexibles de especificación que soportan múltiples vistas sintácticas. Como consecuencia se propone un nuevo tipo de gramáticas de atributos modulares, las gramáticas multivista, y se estudia cómo dar soporte operacional a dichas gramáticas mediante el algoritmo GLR, una generalización del algoritmo de análisis LR para gramáticas no LR, durante la fase de análisis, y mediante un método de evaluación de atributos que opera sobre los bosques de análisis sintácticos en los que se compactan los distintos árboles de análisis sintáctico asociados con cada vista. A fin de analizar la factibilidad práctica de estas propuestas, en este proyecto de investigación se han implementado también la mayor parte de los aspectos de las citadas extensiones en el entorno XLOP, haciendo especial énfasis en los aspectos operacionales: análisis basado en el método GLR y evaluación de atributos orientados a los bosques de análisis sintáctico producidos por dicho método. [ABSTRACT] This research project addresses the enhancement of the XLOP environment (XML Language‐Oriented Processing) with modularization mechanisms. XLOP is an environment for the development of XML‐processing applications that makes it possible to specify these applications by means of attribute grammars, a formalism widely used in the specification of computer languages. Using these specifications, and with the additional support of the implementation of the semantic functions and the application‐specific logic, XLOP makes possible the automatic generation of the processing programs. The main advantage of XLOP is to promote an organization of the processing applications in two clearly‐bounded layers: the linguistic layer, which is in charge of mediating with the grammatical structure of the documents, and the application‐specific logic, which introduces the additional code required without compromising it with specific XML processing details. Moreover, XLOP allows the production and maintenance of the linguistic layer using very high‐level declarative specifications. However, in the current stable version of XLOP, this advantage is affected by its lack of modularity. Indeed, the specification of the linguistic layer is carried out with a single monolithic grammar, located in a single archive. It hinders the use of XLOP for complex XML processing tasks. The goal of this project is to solve this drawback. For this purpose, we propose, on one hand, basic modularization mechanisms for controlling the potential name crashes arising in complex specification. These mechanisms, which are based on namespaces for non‐terminal symbols, facilitate module reuse in different applications. On other hand, the project also inquiries on how to split the specifications in multiple files, each containing simpler specifications that can be joined in terms of the syntax rules of the underlying grammars. It makes possible the modularization of complex specifications in terms of different semantic aspects. In the limit, this modularization strategy can lead to propose multiple alternative syntaxes for the same language, each being suitable for a particular processing aspect. In this project, we investigate how to provide flexible specification mechanisms for supporting multiple syntactic views. Therefore, we propose a new type of modular attribute grammars, the multiview grammars, and we study how to give operational support for these grammars. Our solution is based on the GLR algorithm, a generalization of the LR parsing algorithm for non‐LR grammars, for the analysis of the documents. For evaluating the attributes, our proposal operates on the parse forest in which the parse trees associated with each syntactic view are compacted. In order to analyze the practical feasibility of these proposals, we have implemented the most of the aforementioned extensions in the XLOP environments, and, in particular, the cited operational aspects: GLR parsing and parse‐forest attribute evaluation.
Description
Máster en Sistemas Inteligentes, Facultad de Informática, Departamento de Ingeniería del Software e Inteligencia Artificial, curso 2009-2010
Keywords
Citation