Complutense University Library

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

Temprado Battad, Bryan (2010) Desarrollo dirigido por lenguajes de aplicaciones de procesamiento XML: especificación modular basada en gramáticas de atributos y generación automática. [Trabajo Fin de Máster]

[img]
Preview
PDF
2MB
View download statistics for this eprint

==>>> Export to other formats

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.


Item Type:Trabajo Fin de Máster
Additional Information:

Máster en Sistemas Inteligentes, Facultad de Informática, Departamento de Ingeniería del Software e Inteligencia Artificial, curso 2009-2010

Directors:
DirectorsDirector email
Sierra Rodríguez, José Luis
Uncontrolled Keywords:XML, Procesamiento de documentos XML, Gramática de atributos modular, Desarrollo dirigido por lenguajes, Procesador de lenguaje, Análisis GLR, Bosques de análisis Sintáctico, Evaluación de atributos, e‐Learning, Sistema tutor, XML Processing, Modular Attribute Grammar, Language‐driven Development, Language Processor, GLR Parsing, Parse Forest, Attribute Evaluation, Tutoring System
Subjects:Sciences > Computer science > Programming languages (Electronic computers)
ID Code:11314
Deposited On:01 Nov 2010 18:28
Last Modified:06 Feb 2014 09:01

Repository Staff Only: item control page