Roland Levillain

Compiler construction as an effective application to teach object-oriented programming

Abstract

Compiler construction, a course feared by most students, and a competence seldom needed in the industry. Yet we claim that compiler construction is wonderful topic that benefits from virtually all the computer-science topics. In this paper we show in particular why compiler construction is a killer example for Object-Oriented Programming, providing a unique opportunity for students to understand what it is, what it can be used for, and how it works.

Continue reading

Semantics-driven genericity: A sequel to the static C++ object-oriented programming paradigm (SCOOP 2)

By Thierry Géraud, Roland Levillain

2008-05-26

In Proceedings of the 6th international workshop on multiparadigm programming with object-oriented languages (MPOOL)

Abstract

Classical (unbounded) genericity in 03 defines the interactions between generic data types and algorithms in terms of concepts. Concepts define the requirements over a type (or a parameter) by expressing constraints on its methods and dependent types (typedefs). The upcoming 0x standard will promote concepts from abstract entities (not directly enforced by the tools) to language constructs, enabling compilers and tools to perform additional checks on generic constructs as well as enabling new features (e.g., concept-based overloading). Most modern languages support this notion of signature on generic types. However, generic types built on other types and relying on concepts to both ensure type conformance and drive code specialization, restrain the interface and the implementation of the newly created type: specific methods and associated types not mentioned in the concept will not be part of the new type. The paradigm of concept-based genericity lacks the required semantics to transform types while retaining or adapting their intrinsic capabilities. We present a new form of semantically-enriched genericity allowing static generic type transformations through a simple form of type introspection based on type metadata called properties. This approach relies on a new Static Object-Oriented Programming (SCOOP) paradigm, and is adapted to the creation of generic and efficient libraries, especially in the field of scientific computing. Our proposal uses a metaprogramming facility built into a library called Static, and doesn’t require any language extension nor additional processing (preprocessor, transformation tool).

Continue reading

A set of tools to teach compiler construction

By Akim Demaille, Roland Levillain, Benoît Perrot

2008-03-29

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

Abstract

Compiler construction is a widely used software engineering exercise, but because most students will not be compiler writers, care must be taken to make it relevant in a core curriculum. Auxiliary tools, such as generators and interpreters, often hinder the learning: students have to fight tool idiosyncrasies, mysterious errors, and other poorly educative issues. We introduce a set of tools especially designed or improved for compiler construction educative projects in . We also provide suggestions about new approaches to compiler construction. We draw guidelines from our experience to make tools suitable for education purposes.

Continue reading

Algorithme de calcul de l’arbre des composantes avec applications à la reconnaissance des formes en imagerie satellitaire

By Anthony Baillard, Christophe Berger, Emmanuel Bertin, Thierry Géraud, Roland Levillain, Nicolas Widynski

2007-05-11

In Proceedings of the 21st symposium on signal and image processing (GRETSI)

Abstract

In this paper a new algorithm to compute the component tree is presented. As compared to the state-of-the-art, this algorithm does not use excessive memory and is able to work efficiently on images whose values are highly quantized or even with images having floating values. We also describe how it can be applied to astronomical data to identify relevant objects.

Continue reading

Effective component tree computation with application to pattern recognition in astronomical imaging

By Christophe Berger, Thierry Géraud, Roland Levillain, Nicolas Widynski, Anthony Baillard, Emmanuel Bertin

2007-05-03

In Proceedings of the IEEE international conference on image processing (ICIP)

Abstract

In this paper a new algorithm to compute the component tree is presented. As compared to the state of the art, this algorithm does not use excessive memory and is able to work efficiently on images whose values are highly quantized or even with images having floating values. We also describe how it can be applied to astronomical data to identify relevant objects.

Continue reading