Publications

2022

Type-Level Programming with Match Types

O. Blanvillain; J. I. Brachthaeuser; M. Kjaer; M. Odersky 

Proceedings Of The Acm On Programming Languages-Pacmpl. 2022-01-01. Vol. 6, p. 37. DOI : 10.1145/3498698.

Type-preserving compilation of (most of) FGJ into DOT

G. Martres 

2022

2021

Safer exceptions for Scala

M. Odersky; A. Boruch-Gruszecki; J. I. Brachthäuser; E. Lee; O. Lhoták 

2021-10-17. 12th ACM SIGPLAN International Symposium on Scala, Chicago, Illinois, USA, Sep 17, 2021. p. 1-11. DOI : 10.1145/3486610.3486893.

Proof of Multi-Stage Programming with Generative and Analytical Macros

N. A. Stucki; J. I. Brachthäuser; M. Odersky 

2021-09-22

Representing Monads with Capabilities

J. I. Brachthäuser; A. S. Boruch-Gruszecki; M. Odersky 

HOPE 2021 Workshop, August 22, 2021.

Formalizing GADT constraint reasoning in Scala

M. Bucev 

2021-06-25.

Virtual ADTs for Portable Metaprogramming

N. Stucki; J. I. Brachthaeuser; M. Odersky 

2021-01-01. 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (MPLR), Munster, GERMANY, Sep 29-30, 2021. p. 36-44. DOI : 10.1145/3475738.3480717.

Type-Level Programming with Match Types

O. Blanvillain; J. Brachthäuser; M. Kjaer; M. Odersky 

2021

2020

Semantics-preserving inlining for metaprogramming

N. Stucki; A. Biboudis; S. Doeraene; M. Odersky 

2020-11-13. SPLASH ’20: Conference on Systems, Programming, Languages, and Applications, Software for Humanity, Virtual, November 13, 2020. p. 14-24. DOI : 10.1145/3426426.3428486.

A Type-and-Effect System for Object Initialization

F. Liu; O. Lhoták; A. Biboudis; P. G. Giarrusso; M. Odersky 

2020-11-03

A Type-and-Effect System for Object Initialization

F. Liu; O. Lhotak; A. Biboudis; P. G. Giarrusso; M. Odersky 

Proceedings Of The Acm On Programming Languages-Pacmpl. 2020-11-01. Vol. 4, p. 175. DOI : 10.1145/3428243.

Effects as Capabilities: Effect Handlers and Lightweight Effect Polymorphism

J. I. Brachthaeuser; P. Schuster; K. Ostermann 

Proceedings Of The Acm On Programming Languages-Pacmpl. 2020-11-01. Vol. 4, p. 126. DOI : 10.1145/3428194.

Safe Initialization of Objects

F. Liu; O. Lhoták; A. Biboudis; P. G. Giarrusso; M. Odersky 

2020-09-10

A Mechanized Theory of Quoted Code Patterns

W. Radosław 

2020-06-18.

Report on Theory of Quoted Code Patterns

N. A. Stucki; F. Liu; A. Biboudis 

2020-06-10

Formal foundations for GADTs in Scala

R. Waśko 

2020-04-17.

Digital Design with Implicit State Machines

F. Liu; A. Prokopec; M. Odersky 

2020-01-17

Celsius: A Model for Safe Initialization of Objects

F. Liu; A. Biboudis; P. G. Giarrusso; M. Odersky 

2020-01-09

Stoic: Towards Disciplined Capabilities

F. Liu; S. Stucki; N. Amin; P. G. Giarrusso; M. Odersky 

2020-01-09

2019

XML String Interpolator for Dotty

Y. Kammoun 

2019-06-19.

Implementing the f string interpolator using Dotty macros

S. Alemanno 

2019-06-04.

Staged Tagless Interpreters in Dotty

B. Knuchel 

2019-01-17

Dotty Decompiler

Tobias Bordenca 

2019-01-11.

Towards Improved GADT Reasoning in Scala

L. Parreaux; A. Boruch-Gruszecki; P. G. Giarrusso 

2019-01-01. 10th ACM SIGPLAN International Symposium on Scala (Scala), London, ENGLAND, Jul 17, 2019. p. 12-16. DOI : 10.1145/3337932.3338813.

2018

Truly abstract interfaces for algebraic data types: the extractor typing problem

N. A. Stucki; P. G. Giarrusso; M. Odersky 

2018-09-28. Scala 2018, St. Louis, Missouri, USA, September 28-28, 2018. DOI : 10.1145/3241653.3241658.

Interflow: interprocedural flow-sensitive type inference and method duplication

D. Shabalin; M. Odersky 

2018-09-28. Scala 2018, St. Louis, MO, USA, September 28 – 28, 2018. p. 61-71. DOI : 10.1145/3241653.3241660.

Initialization patterns in Dotty

F. Liu; A. Biboudis; M. Odersky 

2018-09-28.  p. 51-55. DOI : 10.1145/3241653.3241662.

Open Source Is A-Changin’: How Qualitative Research Can Help Us Adapt

D. Klug; H. Miller 

2018-05-01. 

Cross-Platform Language Design in Scala.js (Keynote)

S. Doeraene 

2018-01-01. 9th ACM SIGPLAN International Symposium on Scala (Scala) as part of the ACM SIGPLAN International Conference on Functional Programming (ICFP), St Louis, MO, Sep 28, 2018. p. 1-1. DOI : 10.1145/3241653.3266230.

Theory and Practice of Coroutines with Snapshots

A. Prokopec; F. Liu 

2018. 32nd European Conference on Object-Oriented Programming (ECOOP 2018). DOI : 10.4230/LIPICS.ECOOP.2018.3.

A Practical Unification of Multi-stage Programming and Macros

N. Stucki; A. Biboudis; M. Odersky 

2018. 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, Boston, MA, USA, November 5–6, 2018. DOI : 10.1145/3278122.3278139.

Towards a Solution to the Red Wedding Problem

C. Meiklejohn; Z. Lakhani; H. Miller 

2018. 

A Programming Model and Foundation for Lineage-Based Distributed Computation

P. Haller; H. Miller; N. Müller 

Journal of Functional Programming. 2018. Vol. 28, p. e7. DOI : 10.1017/S0956796818000035.

2017

Dotty Phantom Types

N. A. Stucki; A. Biboudis; M. Odersky 

2017-07-21

Linker call graph with full Dotty support

N. A. Stucki 

2017-01-30

Design and implementation of an optimizing type-centric compiler for a high-level language

D. Petrashko / M. Odersky (Dir.)  

Lausanne, EPFL, 2017. 

Higher-Order Subtyping with Type Intervals

S. Stucki / M. Odersky (Dir.)  

Lausanne, EPFL, 2017. 

Two approaches to portable macros

F. Liu; E. Burmako 

2017

Monotonicity Types for Distributed Dataflow

K. Clancy; H. Miller 

2017. 2nd Workshop on Programming Models and Languages for Distributed Computing, Barcelona, Spain, June 20, 2017. p. 2. DOI : 10.1145/3166089.3166090.

Simplicitly: Foundations and Applications of Implicit Function Types

M. Odersky; O. Blanvillain; F. Liu; A. Biboudis; H. Miller et al. 

2017. 45th ACM SIGPLAN Symposium on Principles of Programming Languages, Los Angeles, California, United States, Sun 7 – Sat 13 January 2018. DOI : 10.1145/3158130.

Foundations of Implicit Function Types

M. Odersky; A. Biboudis; F. Liu; O. Blanvillain 

2017

Miniphases: Compilation using Modular and Efficient Tree Transformations

D. Petrashko; O. Lhoták; M. Odersky 

2017. PLDI, Barcelona, Spain, Sun 18 – Fri 23 June 2017. p. 201-216. DOI : 10.1145/3062341.3062346.

LMS-Verify: Abstraction without Regret for Verified Systems Programming’

N. Amin; T. Rompf 

2017. POPL 2017, Paris, France, January 15 – 21, 2017. DOI : 10.1145/3009837.3009867.

Type Soundness Proofs with Definitional Interpreters

N. Amin; T. Rompf 

2017. POPL 2017, Paris, France, January 15 – 21, 2017. DOI : 10.1145/3009837.3009866.

Unification of Compile-Time and Runtime Metaprogramming in Scala

E. Burmako / M. Odersky (Dir.)  

Lausanne, EPFL, 2017. 

Call-graph-based Optimizations in Scala

R. M. Beguet; N. A. Stucki; D. Petrashko; M. Odersky 

2017

2016

Type Soundness for Dependent Object Types

T. Rompf; N. Amin 

2016. OOPSLA 2016, Amsterdam, Netherlands, November 02 – 04, 2016. DOI : 10.1145/2983990.2984008.

Java and Scala’s Type Systems are Unsound The Existential Crisis of Null Pointers

N. Amin; R. Tate 

2016. ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Amsterdam, NETHERLANDS, NOV 02-04, 2016. p. 838-848. DOI : 10.1145/3022671.2984004.

Type Soundness for Dependent Object Types (DOT)

T. Rompf; N. Amin 

2016. ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Amsterdam, NETHERLANDS, NOV 02-04, 2016. p. 624-641. DOI : 10.1145/3022671.2984008.

A generic algorithm for checking exhaustivity of pattern matching

F. Liu 

2016. SCALA 2016, Amsterdam, Netherlands, October 30 – 31, 2016. p. 61-64. DOI : 10.1145/2998392.2998401.

Semantics-Driven Interoperability between Scala.js and JavaScript

S. Doeraene; T. Schlatter; N. Stucki 

2016. 7th ACM SIGPLAN Symposium on Scala, Amsterdam, Netherlands, October 30-31, 2016. p. 85-94. DOI : 10.1145/2998392.2998404.

Dependent Object Types

N. Amin / M. Odersky (Dir.)  

Lausanne, EPFL, 2016. 

Specialising Parsers for Queries

M. Jonnalagedda / M. Odersky (Dir.)  

Lausanne, EPFL, 2016. 

Implementing Higher-Kinded Types in Dotty

M. Odersky; G. Martres; D. Petrashko 

2016. Scala Symposium 2016, Amsterdam, Oct 30-31, 2016. DOI : 10.1145/2998392.2998400.

Auto-Collections for Scala

A. V. R. Renucci; D. Petrashko 

2016

The Function Passing Model: Types, Proofs, and Semantics

P. Haller; N. Müller; H. Miller 

2016

A Study of Capability-Based Effect Systems

F. Liu 

2016.

Uniting Language Embeddings for Fast and Friendly DSLs

V. Jovanovic / M. Odersky (Dir.)  

Lausanne, EPFL, 2016. 

Call Graphs for Languages with Parametric Polymorphism

D. Petrashko; V. Ureche; O. Lhot\'{a}k; M. Odersky 

2016

The Essence of Dependent Object Types

N. Amin; K. S. Grütter; M. Odersky; T. Rompf; S. Stucki 

2016. WadlerFest 2016, Edinburgh, UK, April 11-12, 2016. p. 249-272. DOI : 10.1007/978-3-319-30936-1_14.

Decrypting Local Type Inference

H. Plociniczak / M. Odersky (Dir.)  

Lausanne, EPFL, 2016. 

Function Passing: A Model for Typed, Distributed Functional Programming

H. Miller; P. Haller; N. Müller; J. Boullier 

2016. ACM SIGPLAN Conference on Systems, Programming, Languages and Applications: Software for Humanity, Onward! Research Papers, Amsterdam, Netherlands, November 2-4, 2016. p. 82-97. DOI : 10.1145/2986012.2986014.

2015

Effects as Implicit Capabilities

M. Odersky 

2015

Isolates, channels, and event streams for composable distributed programming

A. Prokopec; M. Odersky 

2015. 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Pittsburgh, PA, USA, October 25 – 30, 2015. p. 171-182. DOI : 10.1145/2814228.2814245.

Java and Scala’s Type Systems are Unsound: The Existential Crisis of Null Pointers

N. Amin; R. Tate 

2015. OOPSLA 2016, Amsterdam, Netherlands, November 02 – 04, 2016. DOI : 10.1145/2983990.2984004.

Functional Pearl: A SQL to C Compiler in 500 Lines of Code

T. Rompf; N. Amin 

2015. ICFP 2015, Vancouver, BC, Canada, August 31 – September 02, 2015. DOI : 10.1145/2784731.2784760.

Common Subexpression Elimination in Dotty

A. V. R. Renucci; D. Petrashko; M. Odersky 

2015

Implementing Method Type Specialisation In Dotty

A. J. D. Sikiaridis; D. Petrashko; M. Odersky 

2015

Parser Macros for Scala

M. Duhem; E. Burmako 

2015

Style Checking With Scala.Meta

M. Demarne; E. Burmako 

2015

Functional Pearl: A SQL to C Compiler in 500 Lines of Code

T. Rompf; N. Amin 

2015. 20th ACM SIGPLAN International Conference on Functional Programming (ICFP), Vancouver, CANADA, AUG 31-SEP 02, 2015. p. 2-9. DOI : 10.1145/2858949.2784760.

Region-based off-heap memory for Scala

M. O. Denys Shabalin 

2015

RRB Vector: A Practical General Purpose Immutable Sequence

N. A. Stucki; T. Rompf; P. Bagwell; V. Ureche; M. Odersky 

2015. International Conference on Functional Programming (ICFP), Vancouver, BC, Canada, August 31 – September 2, 2015. p. 342–354. DOI : 10.1145/2784731.2784739.

Language Support for Distributed Functional Programming

H. Miller / M. Odersky (Dir.)  

Lausanne, EPFL, 2015. 

Interoperation between Miniboxing and Other Generics Translations

M. Stojanovic 

2015.

Moment Semantics for Reversible Rule-Based Systems

V. Danos; T. Heindel; R. Honorato-Zimmer; S. Stucki 

2015. 7th International Conference on Reversible Computation, Grenoble, France, July 16-17, 2015. p. 3-26. DOI : 10.1007/978-3-319-20860-2_1.

Fold-based fusion as a library: a generative programming pearl

M. Jonnalagedda; S. Stucki 

2015. 6th ACM SIGPLAN Symposium on Scala, Portland, OR, USA, June 13, 2015. p. 41-50. DOI : 10.1145/2774975.2774981.

Miniboxing and the MbArray API

R. M. Beguet 

2015.

Improving the Interoperation between Generics Translations

V. Ureche; M. Stojanovic; R. M. Beguet; N. A. Stucki; M. Odersky 

2015. Principles and Practices of Programming on the Java platform (PPPJ), Melbourne, Florida, USA, September 9-11, 2015. p. 113–124. DOI : 10.1145/2807426.2807436.

Automating Ad hoc Data Representation Transformations

V. Ureche; A. Biboudis; Y. Smaragdakis; M. Odersky 

2015. Object Oriented Programming Systems Languages and Applications (OOPSLA)’, u”[u’ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Pittsburgh, PA, USA, October 25-30, 2015. p. 801-820. DOI : 10.1145/2814270.2814271.

Turning Relaxed Radix Balanced Vector from Theory into Practice for Scala Collections (Master Thesis)

N. Stucki 

2015.

Distributed Programming via Safe Closure Passing

P. Haller; H. Miller 

2015. Programming Language Approaches to Communication and Concurrency Centric Systems, London, UK, April 18, 2015.

Macros in sbt: Problem Solved!

M. N. Duhem; E. Burmako 

2015

Obey: Code Health for Scala.Meta

A. Ghosn; E. Burmako 

2015

Traversal Query Language For Scala.Meta

E. Beguet; E. Burmako 

2015

2014

Reversible Sesqui-Pushout Rewriting, Graph Transformation

V. Danos; T. Heindel; R. Honorato-Zimmer; S. Stucki 

2014-07-22. 7th International Conference on Graph Transformation, ICGT 2014, Held as Part of STAF 2014, York, UK, July 22-24, 2014. p. 161-176. DOI : 10.1007/978-3-319-09108-2_11.

Report on Scala Multisets API (Bag trait)

N. A. Stucki 

2014-01-10.

Computing with an SMT Solver

N. Amin; R. Leino; T. Rompf 

2014. DOI : 10.1007/978-3-319-09099-3_2.

BlitzViews – lazy parallel operations for Scala collections

A. Angel; D. Petrashko; M. Odersky 

2014

Hygiene for Scala

D. Shabalin 

2014.

Approximations for Stochastic Graph Rewriting

V. Danos; T. Heindel; R. Honorato-Zimmer; S. Stucki 

2014. 16th International Conference on Formal Engineering Methods, ICFEM ’14, Luxembourg, Luxembourg, November 3-5, 2014. p. 1-10. DOI : 10.1007/978-3-319-11737-9_1.

Better Loop Fusion for LMS

V. Salvisberg 

2014.

Staged Parser Combinators for Efficient Data Processing

M. Jonnalagedda; T. Coppey; S. Stucki; T. Rompf; M. Odersky 

Acm Sigplan Notices. 2014. Vol. 49, num. 10, p. 637-653. DOI : 10.1145/2714064.2660241.

Foundations of Path-Dependent Types

N. Amin; T. Rompf; M. Odersky 

Acm Sigplan Notices. 2014. Vol. 49, num. 10, p. 233-249. DOI : 10.1145/2660193.2660216.

Surgical Precision JIT Compilers

T. Rompf; A. K. Sujeeth; K. J. Brown; H. Lee; H. Chafi et al. 

2014. 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Edinburgh, SCOTLAND, JUN 09-11, 2014. p. 41-52. DOI : 10.1145/2594291.2594316.

Near Optimal Work-Stealing Tree Scheduler for Highly Irregular Data-Parallel Workloads

A. Prokopec; M. Odersky 

2014. 26th International Workshop on Languages and Compilers for Parallel Computing (LCPC), San Jose, CA, SEP 25-27, 2013. p. 55-86. DOI : 10.1007/978-3-319-09967-5_4.