Publications

2024

Degrees of Separation: A Flexible Type System for Safe Concurrency

Y. Xu; A. S. Boruch-Gruszecki; M. Odersky 

2024-04-03. OOPSLA 2024, Pasadena, California, United States, 20 – 25 October 2024.

When Subtyping Constraints Liberate A Novel Type Inference Approach for First-Class Polymorphism

L. Parreaux; A. S. Boruch-Gruszecki; A. Fan; C. Y. Chau 

Proceedings Of The Acm On Programming Languages-Pacmpl. 2024-01-01. Vol. 8, num. POPL, p. 48. DOI : 10.1145/3632890.

Scala 3 syntax rewriting

M. Tropin 

2024-01-05.

2023

Capturing Types

A. S. Boruch-Gruszecki; M. Odersky; E. Lee; O. Lhotak; J. Brachthaeuser 

Acm Transactions On Programming Languages And Systems. 2023-12-01. Vol. 45, num. 4, p. 21. DOI : 10.1145/3618003.

Unsupervised Graph Representation Learning with Cluster-aware Self-training and Refining

Y. Zhu; Y. Xu; F. Yu; Q. Liu; S. Wu 

Acm Transactions On Intelligent Systems And Technology. 2023-10-01. Vol. 14, num. 5, p. 82. DOI : 10.1145/3608480.

Inline Traits for Specialization in Scala 3

T. Andres 

2023-06-23.

A Mechanized Theory of the Box Calculus

J. Fourment; Y. Xu 

2023-06-10

2022

A case for DOT: Theoretical Foundations for Objects with Pattern Matching and GADT-Style Reasoning

A. S. Boruch-Gruszecki; R. Wasko; Y. Xu; L. Parreaux 

Proceedings Of The Acm On Programming Languages-Pacmpl. 2022-10-01. Vol. 6, num. OOPSLA, p. 179. DOI : 10.1145/3563342.

Implement string interpolator inline unapply

P. V. Gorilskij; M. Odersky 

2022-06-17.

Macro Annotations for Scala 3

Z. Ang 

2022-06-17.

Effects, Capabilities, and Boxes From Scope-Based Reasoning to Type-Based Reasoning and Back

J. I. Brachthaeuser; P. Schuster; E. Lee; A. Boruch-Gruszecki 

Proceedings Of The Acm On Programming Languages-Pacmpl. 2022-04-01. Vol. 6, num. OOPSLA, p. 76. DOI : 10.1145/3527320.

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

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.

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.

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.

Safe Initialization of Objects

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

2020-09-10

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

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.

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.

2019

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.

Implementing the f string interpolator using Dotty macros

S. Alemanno 

2019-06-04.

XML String Interpolator for Dotty

Y. Kammoun 

2019-06-19.

Staged Tagless Interpreters in Dotty

B. Knuchel 

2019-01-17

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.

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.

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.

Theory and Practice of Coroutines with Snapshots

A. Prokopec; F. Liu 

2018. 32nd European Conference on Object-Oriented Programming (ECOOP 2018). p. 3:1-3:32. 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.

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

D. Klug; H. Miller 

2018-05-01. 

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