7 Search Results for "Parreaux, Lionel"


Document
Artifact
A Simple Recipe for Writing Decent Recursive Descent Parsers (Artifact)

Authors: Luyu Cheng and Lionel Parreaux

Published in: DARTS, Volume 12, Issue 1, Special Issue of the 40th European Conference on Object-Oriented Programming (ECOOP 2026)


Abstract
This artifact consists of the MLscript implementation of the generalized Pratt parser introduced in the related article, together with a standalone browser demo written in MLscript. The demo parses full Caml Light programs, a lightweight precursor to OCaml, as well as examples with dynamically extended syntax, and displays syntax trees, tokens, parser traces, precedence information, syntax diagrams, and parser errors. For convenience, the package also includes the MLscript compiler project used to rebuild the parser and demo, and the tests that exercise the examples and generated web-demo artifacts.

Cite as

Luyu Cheng and Lionel Parreaux. A Simple Recipe for Writing Decent Recursive Descent Parsers (Artifact). In Special Issue of the 40th European Conference on Object-Oriented Programming (ECOOP 2026). Dagstuhl Artifacts Series (DARTS), Volume 12, Issue 1, pp. 17:1-17:4, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2026)


Copy BibTex To Clipboard

@Article{cheng_et_al:DARTS.12.1.17,
  author =	{Cheng, Luyu and Parreaux, Lionel},
  title =	{{A Simple Recipe for Writing Decent Recursive Descent Parsers (Artifact)}},
  pages =	{17:1--17:4},
  journal =	{Dagstuhl Artifacts Series},
  ISSN =	{2509-8195},
  year =	{2026},
  volume =	{12},
  number =	{1},
  editor =	{Cheng, Luyu and Parreaux, Lionel},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/DARTS.12.1.17},
  URN =		{urn:nbn:de:0030-drops-261543},
  doi =		{10.4230/DARTS.12.1.17},
  annote =	{Keywords: Parsing, Pratt Parsing, Recursive Descent, Extensible Syntax, Artifact}
}
Artifact
InteractiveResource
Online Web Demonstration of A Simple Recipe for Writing Decent Recursive Descent Parsers

Authors: Luyu Cheng and Lionel Parreaux


Abstract

Cite as

Luyu Cheng, Lionel Parreaux. Online Web Demonstration of A Simple Recipe for Writing Decent Recursive Descent Parsers (InteractiveResource, Online demonstration). Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2026)


Copy BibTex To Clipboard

@misc{dagstuhl-artifact-26720,
   title = {{Online Web Demonstration of A Simple Recipe for Writing Decent Recursive Descent Parsers}}, 
   author = {Cheng, Luyu and Parreaux, Lionel},
   note = {InteractiveResource (visited on 2026-06-25)},
   url = {https://recursive-descent-parsing.mlscript.dev},
   doi = {10.4230/artifacts.26720},
}
Document
Pearl/Brave New Idea
A Simple Recipe for Writing Decent Recursive Descent Parsers (Pearl/Brave New Idea)

Authors: Luyu Cheng and Lionel Parreaux

Published in: LIPIcs, Volume 372, 40th European Conference on Object-Oriented Programming (ECOOP 2026)


Abstract
Parsing well-designed computer languages should not be a hard problem, be it for humans or for machines. This is not a new idea: in 1973, Vaughan R. Pratt argued against formalistic grammar specifications and in favor of a more intuitive and meaningful approach to designing and parsing syntax. In this Pearl, we take the reader on a journey through handwritten recursive descent parsing, revisiting Pratt’s original philosophy in a modern, statically-typed functional programming language. Contrary to many existing tutorials on the subject, we do not stop at simple expression languages: we also discuss how to tackle the full syntax of a simple programming language while avoiding the pitfalls of ad-hoc implementations. Indeed, a downside of recursive descent parsing is that the specification of what the parser accepts is written in code, which may contain subtle bugs and is not easily accessible to end users. We describe a simple recipe for architecting extensible recursive descent parsers that can automatically produce a readable representation of the syntax specification. We illustrate our approach by implementing a parser for a variant of Caml Light. Overall, this paper serves both as a pedagogical introduction to Pratt parsing in a modern programming language and as a practical guide to programmers who just want to implement, without unnecessary headaches, a computer language that is easy to parse and easy to read.

Cite as

Luyu Cheng and Lionel Parreaux. A Simple Recipe for Writing Decent Recursive Descent Parsers (Pearl/Brave New Idea). In 40th European Conference on Object-Oriented Programming (ECOOP 2026). Leibniz International Proceedings in Informatics (LIPIcs), Volume 372, pp. 30:1-30:28, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2026)


Copy BibTex To Clipboard

@InProceedings{cheng_et_al:LIPIcs.ECOOP.2026.30,
  author =	{Cheng, Luyu and Parreaux, Lionel},
  title =	{{A Simple Recipe for Writing Decent Recursive Descent Parsers}},
  booktitle =	{40th European Conference on Object-Oriented Programming (ECOOP 2026)},
  pages =	{30:1--30:28},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-423-9},
  ISSN =	{1868-8969},
  year =	{2026},
  volume =	{372},
  editor =	{Krebbers, Robbert and Silva, Alexandra},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2026.30},
  URN =		{urn:nbn:de:0030-drops-261261},
  doi =		{10.4230/LIPIcs.ECOOP.2026.30},
  annote =	{Keywords: Parsing, Pratt Parsing, Operator Precedence, Recursive Descent}
}
Document
The Algebra of Patterns

Authors: David Binder and Lean Ermantraut

Published in: LIPIcs, Volume 333, 39th European Conference on Object-Oriented Programming (ECOOP 2025)


Abstract
Pattern matching is a popular feature in functional, imperative and object-oriented programming languages. Language designers should therefore invest effort in a good design for pattern matching. Most languages choose a first-match semantics for pattern matching; that is, clauses are tried in the order in which they appear in the program until the first one matches. As a consequence, the order in which the clauses appear cannot be arbitrarily changed, which results in a less declarative programming model. The declarative alternative to this is an order-independent semantics for pattern matching, which is not implemented in most programming languages since it requires more verbose patterns. The reason for this verbosity is that the syntax of patterns is usually not expressive enough to express the complement of a pattern. In this paper, we show a principled way to make order-independent pattern matching practical. Our solution consists of two parts: First, we introduce a boolean algebra of patterns which can express the complement of a pattern. Second, we introduce default clauses to pattern matches. These default clauses capture the essential idea of a fallthrough case without sacrificing the property of order-independence.

Cite as

David Binder and Lean Ermantraut. The Algebra of Patterns. In 39th European Conference on Object-Oriented Programming (ECOOP 2025). Leibniz International Proceedings in Informatics (LIPIcs), Volume 333, pp. 2:1-2:28, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2025)


Copy BibTex To Clipboard

@InProceedings{binder_et_al:LIPIcs.ECOOP.2025.2,
  author =	{Binder, David and Ermantraut, Lean},
  title =	{{The Algebra of Patterns}},
  booktitle =	{39th European Conference on Object-Oriented Programming (ECOOP 2025)},
  pages =	{2:1--2:28},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-373-7},
  ISSN =	{1868-8969},
  year =	{2025},
  volume =	{333},
  editor =	{Aldrich, Jonathan and Silva, Alexandra},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2025.2},
  URN =		{urn:nbn:de:0030-drops-232959},
  doi =		{10.4230/LIPIcs.ECOOP.2025.2},
  annote =	{Keywords: functional programming, pattern matching, algebraic data types, equational reasoning}
}
Document
super-Charging Object-Oriented Programming Through Precise Typing of Open Recursion

Authors: Andong Fan and Lionel Parreaux

Published in: LIPIcs, Volume 263, 37th European Conference on Object-Oriented Programming (ECOOP 2023)


Abstract
We present a new variation of object-oriented programming built around three simple and orthogonal constructs: classes for storing object state, interfaces for expressing object types, and mixins for reusing and overriding implementations. We show that the latter can be made uniquely expressive by leveraging a novel feature that we call precisely-typed open recursion. This features uses "this" and "super" annotations to express the requirements of any given partial method implementation on the types of respectively the current object and the inherited definitions. Crucially, the fact that mixins do not introduce types nor subtyping relationships means they can be composed even when the overriding and overridden methods have incomparable types. Together with advanced type inference and structural typing support provided by the MLscript programming language, we show that this enables an elegant and powerful solution to the Expression Problem.

Cite as

Andong Fan and Lionel Parreaux. super-Charging Object-Oriented Programming Through Precise Typing of Open Recursion. In 37th European Conference on Object-Oriented Programming (ECOOP 2023). Leibniz International Proceedings in Informatics (LIPIcs), Volume 263, pp. 11:1-11:28, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023)


Copy BibTex To Clipboard

@InProceedings{fan_et_al:LIPIcs.ECOOP.2023.11,
  author =	{Fan, Andong and Parreaux, Lionel},
  title =	{{super-Charging Object-Oriented Programming Through Precise Typing of Open Recursion}},
  booktitle =	{37th European Conference on Object-Oriented Programming (ECOOP 2023)},
  pages =	{11:1--11:28},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-281-5},
  ISSN =	{1868-8969},
  year =	{2023},
  volume =	{263},
  editor =	{Ali, Karim and Salvaneschi, Guido},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.11},
  URN =		{urn:nbn:de:0030-drops-182047},
  doi =		{10.4230/LIPIcs.ECOOP.2023.11},
  annote =	{Keywords: Object-Oriented Programming, the Expression Problem, Open Recursion}
}
Document
Artifact
super-Charging Object-Oriented Programming Through Precise Typing of Open Recursion (Artifact)

Authors: Andong Fan and Lionel Parreaux

Published in: DARTS, Volume 9, Issue 2, Special Issue of the 37th European Conference on Object-Oriented Programming (ECOOP 2023)


Abstract
This artifact consists of an SBT project with a Scala implementation of the MLscript programming language extended with "super-charged" object-oriented programming features (SuperOOP), introduced in the corresponding paper. We provide a test suite that includes SuperOOP examples and a web demo that gives live typing and running results of the user input source.

Cite as

Andong Fan and Lionel Parreaux. super-Charging Object-Oriented Programming Through Precise Typing of Open Recursion (Artifact). In Special Issue of the 37th European Conference on Object-Oriented Programming (ECOOP 2023). Dagstuhl Artifacts Series (DARTS), Volume 9, Issue 2, pp. 22:1-22:2, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023)


Copy BibTex To Clipboard

@Article{fan_et_al:DARTS.9.2.22,
  author =	{Fan, Andong and Parreaux, Lionel},
  title =	{{super-Charging Object-Oriented Programming Through Precise Typing of Open Recursion (Artifact)}},
  pages =	{22:1--22:2},
  journal =	{Dagstuhl Artifacts Series},
  ISSN =	{2509-8195},
  year =	{2023},
  volume =	{9},
  number =	{2},
  editor =	{Fan, Andong and Parreaux, Lionel},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/DARTS.9.2.22},
  URN =		{urn:nbn:de:0030-drops-182626},
  doi =		{10.4230/DARTS.9.2.22},
  annote =	{Keywords: Object-Oriented Programming, the Expression Problem, Open Recursion}
}
Document
Pearl
Finally, a Polymorphic Linear Algebra Language (Pearl)

Authors: Amir Shaikhha and Lionel Parreaux

Published in: LIPIcs, Volume 134, 33rd European Conference on Object-Oriented Programming (ECOOP 2019)


Abstract
Many different data analytics tasks boil down to linear algebra primitives. In practice, for each different type of workload, data scientists use a particular specialised library. In this paper, we present Pilatus, a polymorphic iterative linear algebra language, applicable to various types of data analytics workloads. The design of this domain-specific language (DSL) is inspired by both mathematics and programming languages: its basic constructs are borrowed from abstract algebra, whereas the key technology behind its polymorphic design uses the tagless final approach (a.k.a. polymorphic embedding/object algebras). This design enables us to change the behaviour of arithmetic operations to express matrix algebra, graph algorithms, logical probabilistic programs, and differentiable programs. Crucially, the polymorphic design of Pilatus allows us to use multi-stage programming and rewrite-based optimisation to recover the performance of specialised code, supporting fixed sized matrices, algebraic optimisations, and fusion.

Cite as

Amir Shaikhha and Lionel Parreaux. Finally, a Polymorphic Linear Algebra Language (Pearl). In 33rd European Conference on Object-Oriented Programming (ECOOP 2019). Leibniz International Proceedings in Informatics (LIPIcs), Volume 134, pp. 25:1-25:29, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2019)


Copy BibTex To Clipboard

@InProceedings{shaikhha_et_al:LIPIcs.ECOOP.2019.25,
  author =	{Shaikhha, Amir and Parreaux, Lionel},
  title =	{{Finally, a Polymorphic Linear Algebra Language}},
  booktitle =	{33rd European Conference on Object-Oriented Programming (ECOOP 2019)},
  pages =	{25:1--25:29},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-111-5},
  ISSN =	{1868-8969},
  year =	{2019},
  volume =	{134},
  editor =	{Donaldson, Alastair F.},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2019.25},
  URN =		{urn:nbn:de:0030-drops-108172},
  doi =		{10.4230/LIPIcs.ECOOP.2019.25},
  annote =	{Keywords: Linear Algebra, Domain-Specific Languages, Tagless Final, Polymorphic Embedding, Object Algebra, Multi-Stage Programming, Graph Processing, Probabilistic Programming, Automatic Differentiation}
}
  • Refine by Type
  • 6 Document/PDF
  • 1 Artifact
  • 1 Document/HTML

  • Refine by Publication Year
  • 3 2026
  • 1 2025
  • 2 2023
  • 1 2019

  • Refine by Author
  • 6 Parreaux, Lionel
  • 3 Cheng, Luyu
  • 2 Fan, Andong
  • 1 Binder, David
  • 1 Ermantraut, Lean
  • Show More...

  • Refine by Series/Journal
  • 4 LIPIcs
  • 2 DARTS

  • Refine by Classification
  • 2 Software and its engineering → Object oriented languages
  • 2 Software and its engineering → Parsers
  • 2 Software and its engineering → Syntax
  • 1 Computing methodologies → Linear algebra algorithms
  • 1 Mathematics of computing → Automatic differentiation
  • Show More...

  • Refine by Keyword
  • 2 Object-Oriented Programming
  • 2 Open Recursion
  • 2 Parsing
  • 2 Pratt Parsing
  • 2 Recursive Descent
  • Show More...

Any Issues?
X

Feedback on the Current Page

CAPTCHA

Thanks for your feedback!

Feedback submitted to Dagstuhl Publishing

Could not send message

Please try again later or send an E-mail