Take a look at our story and ourselves.

The story: From an idea to a project

Various types of text editors exist to write software. The most popular is a plain text editor that highlights keywords and proposes code completion depending on the context of the cursor. Programmers start with a blank page and type in the code. This requires them to know in advance the structure of the code, as it is common to all programs written in a programming language, like Java. However, when it comes to domain-specific languages (DSL), users are typically not programmers. DSLs are small heavily constrained languages that are tailored to a specific expertise. Starting from a blank page does not help them and not seeing the overall structure is the source of lots of errors.

Projectional editors (PE) are an attractive solution because they prepopulate the structure of the code. PEs present text and other visualizations, such as tables and equations, with placeholders. Users are only allowed to write text in these placeholders, which reduces significantly the chances of making an error. The editable parts of the code support advanced editing features, including syntax highlighting, automatic text completion, and context-dependent suggestions.

In the activity of software development and modeling, you should benefit from as much freedom as possible to express yourself, and this characteristic also extends to the tools they use. In recent years, projectional editors have proven to be a valid approach to obtain such capabilities by enabling language extension and composition and various notations. However, current solutions are heavyweight, platform-specific, and suffer from poor usability. To better support this paradigm and minimize the risk of arbitrary and accidental constraints in expressivity, we introduce Gentleman, a lightweight web-based projectional editor generator. Gentleman allows the user to define a model and projections for its concepts, and use the generated editor to create the model instances.

The goal of this project is to bridge the gap between model and domain expert.

The team

Photo de Louis-Edouard LAFONTANT

Louis-Edouard LAFONTANT, B.Sc.

Creator & Developer

Louis-Edouard is a Computer Science graduate specialized in software engineering. He is an active member of the GEODES Software Engineering Research Group.

Photo d'Eugène SYRIANI

Eugène SYRIANI, Ph.D.


Eugène is an Associate Professor in Computer Science at the University of Montreal. He is one of the leaders of the GEODES Software Engineering Research Group.