• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 10
  • 2
  • 2
  • Tagged with
  • 15
  • 15
  • 8
  • 8
  • 6
  • 6
  • 6
  • 5
  • 5
  • 4
  • 4
  • 4
  • 4
  • 4
  • 4
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Rewriting context-free families of string diagrams

Zamdzhiev, Vladimir Nikolaev January 2016 (has links)
String diagrams provide a convenient graphical framework which may be used for equational reasoning about morphisms of monoidal categories. However, unlike term rewriting, which is the standard way of reasoning about the morphisms of monoidal categories, rewriting string diagrams results in shorter equational proofs, because the string diagrammatic representation allows us to formally establish equalities modulo any rewrite steps which follow from the monoidal structure. Manipulating string diagrams by hand is a time-consuming and error-prone process, especially for large string diagrams. This can be ameliorated by using software proof assistants, such as Quantomatic. However, reasoning about concrete string diagrams may be limiting and in some scenarios it is necessary to reason about entire (infinite) families of string diagrams. When doing so, we face the same problems as for manipulating concrete string diagrams, but in addition, we risk making further mistakes if we are not precise enough about the way we represent (infinite) families of string diagrams. The primary goal of this thesis is to design a mathematical framework for equational reasoning about infinite families of string diagrams which is amenable to computer automation. We will be working with context-free families of string diagrams and we will represent them using context-free graph grammars. We will model equations between infinite families of diagrams using rewrite rules between context-free grammars. Our framework represents equational reasoning about concrete string diagrams and context-free families of string diagrams using double-pushout rewriting on graphs and context-free graph grammars respectively. We will prove that our representation is sound by showing that it respects the concrete semantics of string diagrammatic reasoning and we will show that our framework is appropriate for software implementation by proving important decidability properties.
2

Where Social Networks, Graph Rewriting and Visualisation Meet : Application to Network Generation and Information Diffusion / Quand les réseaux sociaux, la réécriture de graphes et la visualisation se rencontrent : application à la génération de réseaux et à la diffusion d'information.

Vallet, Jason 07 December 2017 (has links)
Dans cette thèse, nous présentons à la fois une collection de modèles de générations de réseaux et de diffusion d'information exprimés à l'aide d'un formalisme particulier appelé la réécriture de graphes, ainsi qu'une nouvelle méthode de représentation permettant la visualisation de la diffusion d'information dans des grands réseaux sociaux. Les graphes sont des objets mathématiques particulièrement versatiles qui peuvent être utilisés pour représenter une large variété de systèmes abstraits. Ces derniers peuvent être transformés de multiples façons (création, fusion ou altération de leur éléments), mais de telles modifications doivent être contrôlées afin d'éviter toute opération non souhaitée. Pour cela, nous faisons appel au formalisme particulier de la réécriture de graphes afin d'encadrer et de contrôler toutes les transformations. Dans notre travail, un système de réécriture de graphes opère sur un graphe, qui peut être transformé suivant un ensemble de règles, le tout piloté par une stratégie. Nous commençons tout d'abord par utiliser la réécriture en adaptant deux algorithmes de génération de réseaux, ces derniers permettant la création de réseaux aux caractéristiques petit monde. Nous traduisons ensuite vers le formalisme de réécriture différents modèles de diffusion d'information dans les réseaux sociaux. En énonçant à l'aide d'un formalisme commun différents algorithmes, nous pouvons plus facilement les comparer, ou ajuster leurs paramètres. Finalement, nous concluons par la présentation d'un nouvel algorithme de dessin compact de grands réseaux sociaux pour illustrer nos méthodes de propagation d'information. / In this thesis, we present a collection of network generation and information diffusion models expressed using a specific formalism called strategic located graph rewriting, as well as a novel network layout algorithm to show the result of information diffusion in large social networks. Graphs are extremely versatile mathematical objects which can be used to represent a wide variety of high-level systems. They can be transformed in multiple ways (e.g., creating new elements, merging or altering existing ones), but such modifications must be controlled to avoid unwanted operations. To ensure this point, we use a specific formalism called strategic graph rewriting. In this work, a graph rewriting system operates on a single graph, which can then be transformed according to some transformation rules and a strategy to steer the transformation process. First, we adapt two social network generation algorithms in order to create new networks presenting small-world characteristics. Then, we translate different diffusion models to simulate information diffusion phenomena. By adapting the different models into a common formalism, we make their comparison much easier along with the adjustment of their parameters. Finally, we finish by presenting a novel compact layout method to display overviews of the results of our information diffusion method.
3

A CONTEXT-AWARE ROLE-PLAYING AUTOMATON FOR SELF-ADAPTIVE SYSTEMS

Schütze, Lars 16 April 2019 (has links)
Role-based modeling and programming will become more and more important to realize big, complex, and adaptive software systems [Zhu and Alkins, 2006]. Therefore, the Object-Oriented Programming (OOP) paradigm is extended with roles, where objects can begin to play roles and drop roles dynamically at runtime. Playing a role is changing the object’s type which can add or change behavior. Roles are a dynamic view of the state and behavior of objects at runtime at a point of time highlighting their relations to other objects. Self-adaptive systems (SAS) are naturally context-aware systems. Thus, adaption is always seen in a context e.g., because a sensor value passes a specified limit, or because the reason could be derived from the knowledge about the past and presence. However, there is currently no common concept describing the situation (e.g., the context or other conditions that lead to a specific adaption) in which objects begin to play and stop playing roles. Current role programming languages therefore suffer from the problem of tangling of different aspects i.e., the context logic, the role adaption logic, and the business logic. This leads to less understandable and unmaintainable code [Antinyan et al., 2014]. Thomas Kühn has drafted in his major thesis [Kühn, 2011] a behavioral model to describe role binding with storyboards. This allows to model concisely role reconfigurations, but the concept lacks the ability to specify context-dependent behavior which is crucial for self-adaptive systems, and is built on top of an outdated understanding of the role concept which lacks compartments. The concept of storyboards will be extended with the ability to address context-dependent conditions. Compartments will be added in order to adapt the current wider understanding of the concept of roles. This will result in a concept for context-aware storyboards with roles which provide a separation of concerns approach w.r.t. the above named concerns. The concept will be implemented as automaton and will be evaluated on a use case. The use case is a robotic co-working scenario based on the idea of [Haddadin et al., 2009].:1. Introduction 1.1. Motivation 1.2. Outline 2. Background and Concepts 2.1. Role-Based Design 2.1.1. Roles and Role Models 2.1.2. Role Binding 2.1.3. Role Runtime Systems 2.2. Modeling Concepts for a Role-Playing Automaton 2.2.1. Models and Meta-models 2.2.2. Behavioral Diagrams and Automata 2.2.3. Storyboards 2.3. Relevant Software Architectures 2.3.1. Context-Aware Computing 2.3.2. Self-Adaptive Systems 2.3.3. Event-Based Systems 2.4. Summary 3. Requirements Analysis 3.1. Problem Analysis 3.2. Goals and Requirements 3.3. Technology Analysis and Selection 3.3.1. Pattern Matching 3.3.2. Model Execution 3.4. Summary 4. Concept for a Role-Playing Automaton for Self-Adaptive Systems 4.1. Context-Aware Storyboards with Roles 4.2. Syntax and Semantics 4.2.1. Overview 4.2.2. Story Pattern 4.2.3. Transitions, Events, and Guards 4.2.4. Control Nodes 4.2.5. Variable Binding 4.3. Meta-Model 4.4. Differences to Related Concepts 4.4.1. Relation to UML Activity Diagrams 4.4.2. Differences to Story Diagrams 4.4.3. Differences to Storyboards with Roles 4.5. Summary 5. Implementation 5.1. Architecture 5.2. Implementation 5.2.1. Grammar and Meta-model 5.2.2. Model Transformation 5.2.3. Graph Transformation 5.2.4. The Role Model 5.2.5. Context and Events 5.2.6. Model Execution and Validation 5.3. Summary 6. Related Work 6.1. Context-Aware Middleware for URC System 6.2. Context Petri Nets 6.3. Agent-Based and Context-Oriented Approach for Web Services Composition 6.4. Model Driven Design of Service-Based Context-Aware Applications 6.5. Summary 7. Evaluation 7.1. Use Case Robotic Co-Worker 7.2.Results 7.3.Summary 8. Conclusion and FutureWork 8.1.Conclusion 8.2.FutureWork A. Appendices A.1. Grammar for Storyboards with Roles A.2. Exemplary of a StoryDiagram A.3. Meta-Model of Context-Aware Storyboards With Roles
4

Un calcul de réécriture de graphes : applications à la biologie et aux systèmes autonomes / A rewriting calculus for graphs : applications to biology and autonomous systems

Andrei, Oana-Maria 05 November 2008 (has links)
L'objectif de cette thèse est d'explorer des descriptions formelles pour la structure et le fonctionnement des systèmes biologiques, ainsi que des outils formels pour raisonner au sujet de leur comportement. Cette thèse s'inscrit dans les travaux étudiant les modèles informatiques sûrs où les calculs sont exprimés par l'intermédiaire de la réécriture, et où nous pouvons compter sur la vérification formelle pour exprimer et valider les propriétés des modèles. Dans cette thèse nous développons un calcul de réécriture d'ordre supérieur pour décrire des molécules, des règles de réaction, et la génération des réseaux biochimiques. Le calcul est basé sur la métaphore chimique en décrivant les calculs en termes de solutions chimiques dans lesquelles les molécules représentant des données agissent l'une sur l'autre librement selon des règles de réaction. Ainsi nous avons obtenu un Calcul Biochimique Abstrait étendant le modèle chimique d'ordre supérieur en considérant des molécules structurées. Le calcul est équipé d'une spécification naturelle de la concurrence et des mécanismes de contrôle grâce à l'expression des stratégies de réécriture sous forme de molécules. La description des complexes moléculaires ou des réactifs chimiques appartient à une classe spécifique de graphes. Nous définissons la structure des graphes avec ports et nous montrons que les principes du calcul biochimique instanciés pour les graphes avec ports sont assez expressifs pour modéliser des systèmes autonomes et des réseaux biochimiques. En plus, les techniques de la réécriture stratégique ouvrent la voie au raisonnement basé sur les calculs et à la vérification des propriétés des systèmes modélisés / The objective of this thesis is to explore formal descriptions for the structure and functioning of biological systems, as well as formal tools for reasoning about their behavior. This work takes place in the overall prospective to study safe computational models where computations are expressed via rewriting, and where we can rely on formal verification to express and validate suitable properties. In this thesis we develop a higher-order calculus rewriting for describing molecules, reaction patterns, and biochemical network generation. The calculus is based on the chemical metaphor by describing the computations in terms of chemical solutions in which molecules representing data freely interact according to reaction rules. This way we obtained an Abstract Biochemical Calculus as an extension of the higher-order chemical model by considering structured molecules. The calculus is provided with a natural specification of concurrency and of controlling mechanisms by expressing rewrite strategies as molecules. The description of molecular complexes or chemical reactants belong to specific classes of graphs. We define the structure of port graphs and we show how the principles of the biochemical calculus instantiated for port graphs are expressive enough for modeling autonomous systems and biochemical networks. In addition, strategic rewriting techniques open the way to reason about the computations and to verify properties of the modeled systems
5

Pictures of processes : automated graph rewriting for monoidal categories and applications to quantum computing

Kissinger, Aleks January 2011 (has links)
This work is about diagrammatic languages, how they can be represented, and what they in turn can be used to represent. More specifically, it focuses on representations and applications of string diagrams. String diagrams are used to represent a collection of processes, depicted as "boxes" with multiple (typed) inputs and outputs, depicted as "wires". If we allow plugging input and output wires together, we can intuitively represent complex compositions of processes, formalised as morphisms in a monoidal category. While string diagrams are very intuitive, existing methods for defining them rigorously rely on topological notions that do not extend naturally to automated computation. The first major contribution of this dissertation is the introduction of a discretised version of a string diagram called a string graph. String graphs form a partial adhesive category, so they can be manipulated using double-pushout graph rewriting. Furthermore, we show how string graphs modulo a rewrite system can be used to construct free symmetric traced and compact closed categories on a monoidal signature. The second contribution is in the application of graphical languages to quantum information theory. We use a mixture of diagrammatic and algebraic techniques to prove a new classification result for strongly complementary observables. Namely, maximal sets of strongly complementary observables of dimension D must be of size no larger than 2, and are in 1-to-1 correspondence with the Abelian groups of order D. We also introduce a graphical language for multipartite entanglement and illustrate a simple graphical axiom that distinguishes the two maximally-entangled tripartite qubit states: GHZ and W. Notably, we illustrate how the algebraic structures induced by these operations correspond to the (partial) arithmetic operations of addition and multiplication on the complex projective line. The third contribution is a description of two software tools developed in part by the author to implement much of the theoretical content described here. The first tool is Quantomatic, a desktop application for building string graphs and graphical theories, as well as performing automated graph rewriting visually. The second is QuantoCoSy, which performs fully automated, model-driven theory creation using a procedure called conjecture synthesis.
6

Designing scientific workflow following a structure and provenance-aware strategy / Conception de workflows scientifiques fondée sur la structure et la provenance

Chen, Jiuqiang 11 October 2013 (has links)
Les expériences bioinformatiques sont généralement effectuées à l'aide de workflows scientifiques dans lesquels les tâches sont enchaînées les unes aux autres pour former des structures de graphes très complexes et imbriquées. Les systèmes de workflows scientifiques ont ensuite été développés pour guider les utilisateurs dans la conception et l'exécution de workflows. Un avantage de ces systèmes par rapport aux approches traditionnelles est leur capacité à mémoriser automatiquement la provenance (ou lignage) des produits de données intermédiaires et finaux générés au cours de l'exécution du workflow. La provenance d'un produit de données contient des informations sur la façon dont le produit est dérivé, et est cruciale pour permettre aux scientifiques de comprendre, reproduire, et vérifier les résultats scientifiques facilement. Pour plusieurs raisons, la complexité du workflow et des structures d'exécution du workflow est en augmentation au fil du temps, ce qui a un impact évident sur la réutilisation des workflows scientifiques.L'objectif global de cette thèse est d'améliorer la réutilisation des workflows en fournissant des stratégies visant à réduire la complexité des structures de workflow tout en préservant la provenance. Deux stratégies sont introduites. Tout d'abord, nous proposons une approche de réécriture de la structure du graphe de n'importe quel workflow scientifique (classiquement représentée comme un graphe acyclique orienté (DAG)) dans une structure plus simple, à savoir une structure série-parallèle (SP) tout en préservant la provenance. Les SP-graphes sont simples et bien structurés, ce qui permet de mieux distinguer les principales étapes du workflow. En outre, d'un point de vue plus formel, on peut utiliser des algorithmes polynomiaux pour effectuer des opérations complexes fondées sur les graphiques (par exemple, la comparaison de workflows, ce qui est directement lié au problème d’homomorphisme de sous-graphes) lorsque les workflows ont des SP-structures alors que ces opérations sont reliées à des problèmes NP-hard pour des graphes qui sont des DAG sans aucune restriction sur leur structure. Nous avons introduit la notion de préservation de la provenance, conçu l’algorithme de réécriture SPFlow et réalisé l’outil associé.Deuxièmement, nous proposons une méthodologie avec une technique capable de réduire la redondance présente dans les workflow (en supprimant les occurrences inutiles de tâches). Plus précisément, nous détectons des « anti-modèles », un terme largement utilisé dans le domaine de la conception de programme, pour indiquer l'utilisation de formes idiomatiques qui mènent à une conception trop compliquée, et qui doit donc être évitée. Nous avons ainsi conçu l'algorithme DistillFlow qui est capable de transformer un workflow donné en un workflow sémantiquement équivalent «distillé», c’est-à-dire, qui est libre ou partiellement libre des anti-modèles et possède une structure plus concise et plus simple. Les deux principales approches de cette thèse (à savoir, SPFlow et DistillFlow) sont basées sur un modèle de provenance que nous avons introduit pour représenter la structure de la provenance des exécutions du workflowl. La notion de «provenance-équivalence» qui détermine si deux workflows ont la même signification est également au centre de notre travail. Nos solutions ont été testées systématiquement sur de grandes collections de workflows réels, en particulier avec le système Taverna. Nos outils sont disponibles à l'adresse: https://www.lri.fr/~chenj/. / Bioinformatics experiments are usually performed using scientific workflows in which tasks are chained together forming very intricate and nested graph structures. Scientific workflow systems have then been developed to guide users in the design and execution of workflows. An advantage of these systems over traditional approaches is their ability to automatically record the provenance (or lineage) of intermediate and final data products generated during workflow execution. The provenance of a data product contains information about how the product was derived, and it is crucial for enabling scientists to easily understand, reproduce, and verify scientific results. For several reasons, the complexity of workflow and workflow execution structures is increasing over time, which has a clear impact on scientific workflows reuse.The global aim of this thesis is to enhance workflow reuse by providing strategies to reduce the complexity of workflow structures while preserving provenance. Two strategies are introduced.First, we propose an approach to rewrite the graph structure of any scientific workflow (classically represented as a directed acyclic graph (DAG)) into a simpler structure, namely, a series-parallel (SP) structure while preserving provenance. SP-graphs are simple and layered, making the main phases of workflow easier to distinguish. Additionally, from a more formal point of view, polynomial-time algorithms for performing complex graph-based operations (e.g., comparing workflows, which is directly related to the problem of subgraph homomorphism) can be designed when workflows have SP-structures while such operations are related to an NP-hard problem for DAG structures without any restriction on their structures. The SPFlow rewriting and provenance-preserving algorithm and its associated tool are thus introduced.Second, we provide a methodology together with a technique able to reduce the redundancy present in workflows (by removing unnecessary occurrences of tasks). More precisely, we detect "anti-patterns", a term broadly used in program design to indicate the use of idiomatic forms that lead to over-complicated design, and which should therefore be avoided. We thus provide the DistillFlow algorithm able to transform a workflow into a distilled semantically-equivalent workflow, which is free or partly free of anti-patterns and has a more concise and simpler structure.The two main approaches of this thesis (namely, SPFlow and DistillFlow) are based on a provenance model that we have introduced to represent the provenance structure of the workflow executions. The notion of provenance-equivalence which determines whether two workflows have the same meaning is also at the center of our work. Our solutions have been systematically tested on large collections of real workflows, especially from the Taverna system. Our approaches are available for use at https://www.lri.fr/~chenj/.
7

Die C# Schnittstelle der Referenzattributgrammatik-gesteuerten Graphersetzungsbibliothek RACR: Übersicht, Anwendung und Implementierung

Langner, Daniel, Bürger, Christoff 04 July 2018 (has links) (PDF)
Dieser Bericht präsentiert RACR-NET, eine Schnittstelle der Referenzattributgrammatik-gesteuerten Graphersetzungsbibliothek RACR für C#. RACR-NET ermöglicht die Nutzung der deklarativen, dynamischen Sprachspezifikations-, Instanziierungs- und Auswertungsmeachanismen der RACR Scheme-Bibliothek in der objektorientierten Programmierung. Dies umfasst insbesondere die automatische inkrementelle Auswertung attributbasierter semantischer Analysen und somit das automatische Cachen parametrisierter Funktionsmethoden. Graphersetzungen entsprechen hierbei Zustandsänderungen von Objektinstanzen und der Invalidierung abgeleiteter Berechnungen. Schwerpunkt dieses Berichts ist die objektorientierte Programmierschnittstelle von RACR-NET, dessen praktische Anwendung und Implementierung. Der Bericht ist ein Referenzhandbuch für RACR-NET Anwender und Entwickler.
8

The Basic Scheme for the Evaluation of Functional Logic Programs

Peters, Arthur 01 January 2012 (has links)
Functional logic languages provide a powerful programming paradigm combining the features of functional languages and logic languages. However, current implementations of functional logic languages are complex, slow, or both. This thesis presents a scheme, called the Basic Scheme, for compiling and executing functional logic languages based on non-deterministic graph rewriting. This thesis also describes the implementation and optimization of a prototype of the Basic Scheme. The prototype is simple and performs well compared to other current implementations.
9

Adaptation d'ontologies avec les grammaires de graphes typés : évolution et fusion / Ontologies adaptation with typed graph grammars : evolution and merging

Mahfoudh, Mariem 29 May 2015 (has links)
Étant une représentation formelle et explicite des connaissances d'un domaine, les ontologies font régulièrement l'objet de nombreux changements et ont ainsi besoin d'être constamment adaptées pour notamment pouvoir être réutilisées et répondre aux nouveaux besoins. Leur réutilisation peut prendre différentes formes (évolution, alignement, fusion, etc.), et présente plusieurs verrous scientifiques. L'un des plus importants est la préservation de la consistance de l'ontologie lors de son changement. Afin d'y répondre, nous nous intéressons dans cette thèse à étudier les changements ontologiques et proposons un cadre formel capable de faire évoluer et de fusionner des ontologies sans affecter leur consistance. Premièrement, nous proposons TGGOnto (Typed Graph Grammars for Ontologies), un nouveau formalisme permettant la représentation des ontologies et leurs changements par les grammaires de graphes typés. Un couplage entre ces deux formalismes est défini afin de profiter des concepts des grammaires de graphes, notamment les NAC (Negative Application Conditions), pour la préservation de la consistance de l'ontologie adaptée.Deuxièmement, nous proposons EvOGG (Evolving Ontologies with Graph Grammars), une approche d'évolution d'ontologies qui se base sur le formalisme GGTOnto et traite les inconsistances d'une manière a priori. Nous nous intéressons aux ontologies OWL et nous traitons à la fois : (1) l'enrichissement d'ontologies en étudiant leur niveau structurel et (2) le peuplement d'ontologies en étudiant les changements qui affectent les individus et leurs assertions. L'approche EvOGG définit des changements ontologiques de différents types (élémentaires, composées et complexes) et assure leur implémentation par l'approche algébrique de transformation de graphes, SPO (Simple PushOut). Troisièmement, nous proposons GROM (Graph Rewriting for Ontology Merging), une approche de fusion d'ontologies capable d'éviter les redondances de données et de diminuer les conflits dans le résultat de fusion. L'approche proposée se décompose en trois étapes : (1) la recherche de similarité entre concepts en se basant sur des techniques syntaxiques, structurelles et sémantiques ; (2) la fusion d'ontologies par l'approche algébrique SPO ; (3) l'adaptation de l'ontologie globale résultante par le biais des règles de réécriture de graphes.Afin de valider les travaux menés dans cette thèse, nous avons développé plusieurs outils open source basés sur l'outil AGG (Attributed Graph Grammar). Ces outils ont été appliqués sur un ensemble d'ontologies, essentiellement sur celles développées dans le cadre du projet européen CCAlps (Creatives Companies in Alpine Space) qui a financé les travaux de cette thèse. / Ontologies are a formal and explicit knowledge representation. They represent a given domain by their concepts and axioms while creating a consensus between a user community. To satisfy the new requirements of the represented domain, ontologies have to be regularly updated and adapted to maintain their consistency. The adaptation may take different forms (evolution, alignment, merging, etc.), and represents several scientific challenges. One of the most important is to preserve the consistency of the ontology during the changes. To address this issue, we are interested in this thesis to study the ontology changes and we propose a formal framework that can evolve and merge ontologies without affecting their consistency.First we propose TGGOnto (Typed Graph Grammars for Ontologies), a new formalism for the representation of ontologies and their changes using typed graph grammars (TGG). A coupling between ontologies and TGG is defined in order to take advantage of the graph grammars concepts, such as the NAC (Negative Application Conditions), in preserving the adapted ontology consistency. Second, we propose EvOGG (Evolving Ontologies with Graph Grammars), an ontology evolution approach that is based on the TGGOnto formalism that avoids inconsistencies using an a priori approach. We focus on OWL ontologies and we address both : (1) ontology enrichment by studying their structural level and (2) ontology population by studying the changes affecting individuals and their assertions. EvOGG approach defines different types of ontology changes (elementary, composite and complex) and ensures their implementation by the algebraic approach of graph transformation, SPO (Single pushout).Third, we propose GROM (Graph Rewriting for Ontology Merging), an ontologies merging approach that avoids data redundancy and reduces conflict in the merged result. The proposed approach consists of three steps: (1) the similarity search between concepts based on syntactic, structural and semantic techniques; (2) the ontologies merging by the algebraic approach SPO; (3) the global ontology adaptation with graph rewriting rules.To validate our proposals, we have developed several open source tools based on AGG (Attributed Graph Grammar) tool. These tools were applied to a set of ontologies, mainly on those developed in the frame of the CCAlps (Creatives Companies in Alpine Space) European project, which funded this thesis work.
10

RACR: A Scheme Library for Reference Attribute Grammar Controlled Rewriting

Bürger, Christoff 07 February 2013 (has links) (PDF)
This report presents RACR, a reference attribute grammar library for the programming language Scheme. RACR supports incremental attribute evaluation in the presence of abstract syntax tree rewrites. It provides a set of functions that can be used to specify abstract syntax tree schemes and their attribution and construct respective trees, query their attributes and node information and annotate and rewrite them. Thereby, both, reference attribute grammars and rewriting, are seamlessly integrated, such that rewrites can reuse attributes and attribute values change depending on performed rewrites – a technique we call Reference Attribute Grammar Controlled Rewriting. To reevaluate attributes influenced by abstract syntax tree rewrites, a demand-driven, incremental evaluation strategy, which incorporates the actual execution paths selected at runtime for control-flows within attribute equations, is used. To realize this strategy, a dynamic attribute dependency graph is constructed throughout attribute evaluation – a technique we call Dynamic Attribute Dependency Analyses. The report illustrates RACR's motivation, features, instantiation and usage. In particular its application programming interface is documented and exemplified. The report is a reference manual for RACR developers. Further, it presents RACR’s complete implementation and therefore provides a good foundation for readers interested into the details of reference attribute grammar controlled rewriting and dynamic attribute dependency analyses.

Page generated in 0.4479 seconds