Publications

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

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. 

Theory and Practice of Coroutines with Snapshots

A. Prokopec; F. Liu 

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

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

D. Petrashko / M. Odersky (Dir.)  

Lausanne: EPFL, 2017. DOI : 10.5075/epfl-thesis-7979.

Higher-Order Subtyping with Type Intervals

S. Stucki / M. Odersky (Dir.)  

Lausanne: EPFL, 2017. DOI : 10.5075/epfl-thesis-8014.

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.

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. DOI : 10.5075/epfl-thesis-7159.

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/2983990.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/2983990.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. DOI : 10.5075/epfl-thesis-7156.

Specialising Parsers for Queries

M. Jonnalagedda / M. Odersky (Dir.)  

Lausanne: EPFL, 2016. DOI : 10.5075/epfl-thesis-7249.

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. DOI : 10.5075/epfl-thesis-6882.

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. DOI : 10.5075/epfl-thesis-6741.

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

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/2784731.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. DOI : 10.5075/epfl-thesis-6784.

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.

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.

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/2660193.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.

Yin-yang: concealing the deep embedding of DSLs

V. Jovanovic; A. Shaikhha; S. Stucki; V. Nikolaev; C. Koch et al. 

2014. International Conference on Generative Programming: Concepts and Experiences - GPCE 2014, Västerås, Sweden, 15-16 09 2014. p. 73-82. DOI : 10.1145/2658761.2658771.

Staged parser combinators for efficient data processing

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

2014. Object Oriented Programming Systems Languages & Applications (OOPSLA), Portland, Oregon, USA, 20-24 October 2014. p. 637-653. DOI : 10.1145/2660193.2660241.

Delite: A Compiler Architecture for Performance-Oriented Embedded Domain-Specific Languages

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

Acm Transactions On Embedded Computing Systems. 2014. Vol. 13. DOI : 10.1145/2584665.

Forge: Generating a High Performance DSL Implementation from a Declarative Specification

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

Acm Sigplan Notices. 2014. Vol. 49, num. 3, p. 145-154. DOI : 10.1145/2517208.2517220.

Spiral in Scala: Towards the Systematic Construction of Generators for Performance Libraries

G. Ofenbeck; T. Rompf; A. Stojanov; M. Odersky; M. Pueschel 

Acm Sigplan Notices. 2014. Vol. 49, num. 3, p. 125-134. DOI : 10.1145/2517208.2517228.

Data Structures and Algorithms for Data-Parallel Computing in a Managed Runtime

A. Prokopec / M. Odersky (Dir.)  

Lausanne: EPFL, 2014. DOI : 10.5075/epfl-thesis-6264.

Late Data Layout: Unifying Data Representation Transformations

V. Ureche; E. Burmako; M. Odersky 

2014. Object Oriented Programming Systems Languages and Applications (OOPSLA), Portland, OR, USA, October 19-21 2014. p. 397-416. DOI : 10.1145/2660193.2660197.

ScalaDyno: Making Name Resolution and Type Checking Fault-tolerant

C. Bastin; V. Ureche; M. Odersky 

2014. Fifth Annual Scala Workshop, Uppsala, Sweden, July 28-29, 2014. DOI : 10.1145/2637647.2637649.

Accelerating parser combinators with macros

E. Béguet; M. Jonnalagedda 

2014. the Fifth Annual Scala Workshop (SCALA '14), Uppsala, Sweden, 28-29 07 2014. p. 7-17. DOI : 10.1145/2637647.2637653.

Yin-Yang: Concealing the Deep Embedding of DSLs

V. Jovanovic; A. Shaikhha; S. Stucki; V. NIkolaev; C. Koch et al. 

2014

Containers and Aggregates, Mutators and Isolates for Reactive Programming

A. Prokopec; P. Haller; M. Odersky 

2014. Scala 2014, Uppsala, Sweden, July 28-29, 2014.

Additional Material for "Unifying Data Representation Transformations"

V. Ureche 

2014

Improving the Performance of Scala Collections with Miniboxing

A. Genêt; V. Ureche; M. Odersky 

2014

Making sbt Macro-Aware

M. N. Duhem; E. Burmako 

2014

Self-Assembly: Lightweight Language Extension and Datatype Generic Programming, All-in-One!

H. Miller; P. Haller; d. S. Oliveira; C. Bruno 

2014. 

Unifying Functional and Object-Oriented Programming with Scala

M. Odersky; T. Rompf 

Communications Of The Acm. 2014. Vol. 57, num. 4, p. 76-86. DOI : 10.1145/2591013.

Building Efficient Query Engines in a High-Level Language

I. Klonatos; C. Koch; T. Rompf; H. Chafi 

2014. 40th International Conference on Very Large Data Bases (VLDB), Hangzhou, China, September 1st - 5th 2014.

Improving Human-Compiler Interaction Through Customizable Type Feedback

H. Plociniczak; H. Miller; M. Odersky 

2014. 

On Lock-Free Work-stealing Iterators for Parallel Data Structures

A. Prokopec; D. Petrashko; M. Odersky 

2014

A Practical Effect System for Scala

L. Rytz / M. Odersky (Dir.)  

Lausanne: EPFL, 2014. DOI : 10.5075/epfl-thesis-5935.

Spores: A Type-Based Foundation for Closures in the Age of Concurrency and Distribution

H. Miller; P. Haller; M. Odersky 

2014. European Conference on Object-Oriented Programming (ECOOP'14), Uppsala, Sweden, July 28 - August 1, 2014.

Functional Programming For All! Scaling a MOOC for Students and Professionals Alike

H. Miller; P. Haller; L. Rytz; M. Odersky 

2014. 36th International Conference on Software Engineering (ICSE'14) SEET Track, Hyderabad, India, May 31 - June 7, 2014.

2013

An Embedded Query Language in Scala

A. Shaikhha 

2013.

Using Reified Types for Specialization

N. Stucki 

2013.

Scala-Virtualized: Linguistic Reuse for Deep Embeddings

T. Rompf; N. Amin; A. Moors; P. Haller; M. Odersky 

Higher Order and Symbolic Computation. 2013. Vol. August-September, p. 1-43. DOI : 10.1007/s10990-013-9096-9.