Call-by-Value Mixin Modules: Reduction Semantics, Side Effects, Types

Mixin modules are a framework for modular programming that supports code parameterization, incremental programming via late binding and redefinitions, and cross-module recursion. In this paper, we develop a language of mixin modules that supports call-by-value evaluation, and formalize a reduction semantics and a sound type system for this language.

[1]  Matthias Felleisen,et al.  Units: cool modules for HOT languages , 1998, PLDI.

[2]  David A. Moon,et al.  Object-oriented programming with flavors , 1986, OOPLSA '86.

[3]  Claudio V. Russo Recursive Structures for Standard ML , 2001, ICFP.

[4]  Elena Machkasova,et al.  A Calculus for Link-Time Compilation , 2000, ESOP.

[5]  Luca Cardelli,et al.  Program fragments, linking, and modularization , 1997, POPL '97.

[6]  Dominic Duggan,et al.  Mixin modules , 1996, ICFP '96.

[7]  Davide Ancona,et al.  A calculus of module systems , 2002, J. Funct. Program..

[8]  Xavier Leroy,et al.  Manifest types, modules, and separate compilation , 1994, POPL '94.

[9]  Vitaly Shmatikov,et al.  A Core Calculus of Classes and Mixins , 1999, ECOOP.

[10]  Karl Crary,et al.  What is a recursive module? , 1999, PLDI '99.

[11]  Derek Dreyer,et al.  A type system for well-founded recursion , 2004, POPL.

[12]  Gilad Bracha,et al.  The programming language jigsaw: mixins, modularity and multiple inheritance , 1992 .

[13]  Mark Lillibridge,et al.  A type-theoretic approach to higher-order modules with sharing , 1994, POPL '94.

[14]  R. Harper,et al.  Toward a Practical Type Theory for Recursive Modules , 2001 .

[15]  Joe B. Wells,et al.  Equational Reasoning for Linking with First-Class Primitive Modules , 2000, ESOP.

[16]  William R. Cook,et al.  A denotational semantics of inheritance , 1989 .

[17]  Tom Hirschowitz Modules mixins, modules et récursion étendue en appel par valeur , 2003 .

[18]  Rachid Guerraoui,et al.  ECOOP’ 99 — Object-Oriented Programming , 1999, Lecture Notes in Computer Science.

[19]  Martin Odersky,et al.  A Nominal Theory of Objects with Dependent Types , 2003, ECOOP.

[20]  Tom Hirschowitz,et al.  A reduction semantics for call-by-value mixin modules , 2002 .

[21]  Benjamin C. Pierce,et al.  A record calculus based on symmetric concatenation , 1991, POPL '91.

[22]  François Pottier,et al.  A Versatile Constraint-Based Type Inference System , 2000, Nord. J. Comput..

[23]  Matthias Felleisen,et al.  Classes and mixins , 1998, POPL '98.

[24]  Tom Hirschowitz,et al.  Compilation of extended recursion in call-by-value functional languages , 2003, PPDP '03.

[25]  Davide Ancona,et al.  Mixin Modules and Computational Effects , 2003, ICALP.

[26]  Tom Hirschowitz,et al.  Mixin modules in a call-by-value setting , 2002, TOPL.

[27]  Robert Bruce Findler,et al.  Modular object-oriented programming with units and mixins , 1998, ICFP '98.