Releases: combinators/expression-problem
originalPrototype
The goal of this project is to generate a number of approaches (in multiple languages) that address the Expression Problem. This release contains the original Prototype, dating from June 2018, which has been cleaned up and packaged properly for execution.
As coined by Philip Wadler [1], the Expression Problem is a new name for an old problem. The goal is to define a datatype by cases, where one can add new cases to the datatype and new functions over the datatype, without recompiling existing code, and while retaining static type safety.
There are various "solutions" to the Expression Problem. Each solution varies in the amount of code a user must write to implement them, and the language features they require.
In this project, we explore a number of such solutions. Our concern is not with the individual solutions to the Expression Problem (of which there are many), but rather the engineering of these. We provide an alternative, namely, to regenerate all code after modifying the domain.
This earliest prototype has numerous limitations, and the test cases for the Algebra and Interpreter Java-generated EP approaches do not compile because of missing interfaces and classes. Look to release 1.0.0 to fix these early problems. The subsequent version is reengineered with multiple SBT sub-projects to simplify the language code generators.
[1] Wadler, Philip, Email to to Java Genericity Mailing List, 1998
Jan Bessai
Boris Düdder
George Heineman
firstVersion
The goal of this project is to generate a number of approaches (in multiple languages) that address the Expression Problem. This first release, dating from December 2018, has been cleaned up and packaged properly for execution.
As coined by Philip Wadler [1], the Expression Problem is a new name for an old problem. The goal is to define a datatype by cases, where one can add new cases to the datatype and new functions over the datatype, without recompiling existing code, and while retaining static type safety.
There are various "solutions" to the Expression Problem. Each solution varies in the amount of code a user must write to implement them, and the language features they require.
In this project, we explore a number of such solutions. Our concern is not with the individual solutions to the Expression Problem (of which there are many), but rather the engineering of these. We provide an alternative, namely, to regenerate all code after modifying the domain.
[1] Wadler, Philip, Email to to Java Genericity Mailing List, 1998
Jan Bessai
Boris Düdder
George Heineman
Release before CI based testing
Merged last year of work in order to prepare things for a full release.
Archival Prerelease
First milestone to demonstrate valid prototype
PriorFullMerge
Bringing back into master nested code generation branch