Akim Demaille

ESDF: A proposal for a more flexible SDF handling

Abstract

By the means on its annotations, Syntax Definition Formalism (SDF) seems to be extensible: the user is tempted to tailor its grammar syntax by adding new annotation kinds. Unfortunately the standard SDF crunching tools from Stratego/XT do not support the extension of SDF, and the user has to develop the whole set of tools for her home grown extension(s). We present the SDF tool set that provides “weak” genericity with respect to the grammar grammar: support for arbitrary SDF annotations. We would like to contribute it to Stratego/XT since its components subsume their stock peers. Finally, we present a set of four extensions we find useful.

Continue reading

Implementing attributes in SDF

Abstract

Attribute Grammars (AGs) provide a very convenient means to bind semantics to syntax. They enjoy an extensive bibliography and are used in several types of applications. Yet, to our knowledge, their use to disambiguate is novel. We present our implementation of an evaluator of attributes for ambiguous AGs, tailored to ambiguous parse trees disambiguation. This paper focuses on its implementation that heavily relies on Stratego/XT, which is also used as language to express the attribute rules. A companion paper presents the disambiguation process in details 200505-SUD-disamb.

Continue reading

Making compiler construction projects relevant to core curriculums

By Akim Demaille

2005-02-06

In Proceedings of the tenth annual conference on innovation and technology in computer science education (ITICSE’05)

Abstract

Having 300 students a year implement a compiler is a debatable enterprise, since the industry will certainly not recruit them for this competence. Yet we made that decision five years ago, for reasons not related to compiler construction. We detail these motivations, the resulting compiler design, and how we manage the assignment. The project meets its goals, since the majority of former students invariably refer to it as the project that taught them the most.

Continue reading

Generic design patterns in C++

By Alexandre Duret-Lutz, Thierry Géraud, Akim Demaille

2001-01-01

In Proceedings of the 6th USENIX conference on object-oriented technologies and systems (COOTS)

Abstract

Generic programming is a paradigm whose wide adoption by the C++ community is quite recent. In this approach most classes and procedures are parameterized, leading to the construction of general and efficient software components. In this paper, we show how some design patterns from Gamma et al. can be adapted to this paradigm. Although these patterns rely highly on dynamic binding. We show that, by making intensive use of parametric polymorphism in the context of generic programming, the method calls in these patterns can be resolved at compile-time. The speed-up achieved using these patterns is significant.

Continue reading

A framework to dynamically manage distributed virtual environments

By Yoann Fabre, Guillaume Pitel, Laurent Soubrevilla, Emmanuel Marchand, Thierry Géraud, Akim Demaille

2000-07-01

In Proceedings of the 2nd international conference on virtual worlds (VW)

Abstract

In this paper, we present the project urbi, a framework to dynamically manage distributed virtual environments (DVEs). This framework relies on a dedicated scripting language, goal, which is typed, object-oriented and dynamically bound. goal is interpreted by the application hosted by each machine and is designed to handle efficiently both network communications and interactivity. Finally, we have made an unusual design decision: our project is based on a functional programming language, ocaml.

Continue reading

An asynchronous architecture to manage communication, display, and user interaction in distributed virtual environments

By Yoann Fabre, Guillaume Pitel, Laurent Soubrevilla, Emmanuel Marchand, Thierry Géraud, Akim Demaille

2000-06-01

In Virtual environments 2000, proceedings of the 6th eurographics workshop on virtual environments (EGVE)

Abstract

In Distributed Virtual Environments, each machine runs the same software, which is in charge of handling the communications over the network, providing the user with a view of the world, and processing his requests. A major issue in the design of such a software is to ensure that network communication does not degrade the interactivity between the machine and the user. In this paper, we present a software designed to achieve this goal, based on tools rarely used in this area.

Continue reading