Distinguished Artifact at ECOOP 2023

Andong and I are delighted and honored to receive an ECOOP Distinguished Artifact award for our 2023 paper on super-Charging Object-Oriented Programming Through Precise Typing of Open Recursion!

Our approach reformulates object-oriented programming around three simple and orthogonal constructs: classes for storing object state, interfaces for expressing object types, and mixins for reusing and overriding implementations. Mixins are containers of partial implementations that can override and be overridden by implementations from other mixins, which happens when all mixins are composed together in a class definition.

For instance (you can try this code in the demo below):

mixin M1 { fun test = 21 }
mixin M2 { fun test = super.test * this.factor }

class C1(factor: Int) extends M1, M2

C1(2).test  // returns 42

Our paper describes a way of type checking these mixin definitions precisely, inferring the specific requirements that each mixin puts on its uses this and super. Moreover, mixins may change the types of definitions being overridden. Together with MLscript’s advanced structural type system (which supports a powerful form of extensible variants), this offers a neat solution to the well-known Expression Problem.

Our implementation demonstrates a complete integration of this OOP discipline within MLscript, leveraging MLscript’s existing subtype inference system so that all types can typically be inferred from mixin-based user programs. You can find our implementation on GitHub and try it in the web demo embedded below, also available here in full-screen.

Fun fact: while our artifact was praised this year and obtained all badges (available, functional, and reusable), a very similar artifact was rejected from obtaining the reusable badge at last year’s OOPSLA, mainly because it lacked high-level codebase documentation at the time 😢

Lionel Parreaux
Lionel Parreaux
Assistant Professor

Head of the TACO Lab research group at HKUST.