2023
Inline Traits for Specialization in Scala 3
2023-06-23.A Mechanized Theory of the Box Calculus
2023-06-10
2022
Macro Annotations for Scala 3
2022-06-17.Implement string interpolator inline unapply
2022-06-17.Effects, Capabilities, and Boxes From Scope-Based Reasoning to Type-Based Reasoning and Back
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
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
2022
2021
Safer exceptions for Scala
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
2021-09-22
Representing Monads with Capabilities
HOPE 2021 Workshop, August 22, 2021.Formalizing GADT constraint reasoning in Scala
2021-06-25.Virtual ADTs for Portable Metaprogramming
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
2021
2020
Semantics-preserving inlining for metaprogramming
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
2020-11-03
A Type-and-Effect System for Object Initialization
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
Proceedings Of The Acm On Programming Languages-Pacmpl. 2020-11-01. Vol. 4, p. 126. DOI : 10.1145/3428194.Safe Initialization of Objects
2020-09-10
A Mechanized Theory of Quoted Code Patterns
2020-06-18.Report on Theory of Quoted Code Patterns
2020-06-10
Formal foundations for GADTs in Scala
2020-04-17.Digital Design with Implicit State Machines
2020-01-17
Celsius: A Model for Safe Initialization of Objects
2020-01-09
Stoic: Towards Disciplined Capabilities
2020-01-09
2019
XML String Interpolator for Dotty
2019-06-19.Implementing the f string interpolator using Dotty macros
2019-06-04.Staged Tagless Interpreters in Dotty
2019-01-17
Dotty Decompiler
2019-01-11.Towards Improved GADT Reasoning in Scala
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
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
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
2018-09-28. p. 51-55. DOI : 10.1145/3241653.3241662.Open Source Is A-Changin’: How Qualitative Research Can Help Us Adapt
2018-05-01.Cross-Platform Language Design in Scala.js (Keynote)
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
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
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
2018.A Programming Model and Foundation for Lineage-Based Distributed Computation
Journal of Functional Programming. 2018. Vol. 28, p. e7. DOI : 10.1017/S0956796818000035.2017
Dotty Phantom Types
2017-07-21
Linker call graph with full Dotty support
2017-01-30
Design and implementation of an optimizing type-centric compiler for a high-level language
Lausanne, EPFL, 2017.Higher-Order Subtyping with Type Intervals
Lausanne, EPFL, 2017.Monotonicity Types
2017.Two approaches to portable macros
2017
Monotonicity Types for Distributed Dataflow
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
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
2017
Miniphases: Compilation using Modular and Efficient Tree Transformations
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’
2017. POPL 2017, Paris, France, January 15 – 21, 2017. DOI : 10.1145/3009837.3009867.Type Soundness Proofs with Definitional Interpreters
2017. POPL 2017, Paris, France, January 15 – 21, 2017. DOI : 10.1145/3009837.3009866.Unification of Compile-Time and Runtime Metaprogramming in Scala
Lausanne, EPFL, 2017.Call-graph-based Optimizations in Scala
2017
2016
Type Soundness for Dependent Object Types
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
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)
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 TASTY Alternative
2016
TASTY Reference Manual
2016
A generic algorithm for checking exhaustivity of pattern matching
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
2016. 7th ACM SIGPLAN Symposium on Scala, Amsterdam, Netherlands, October 30-31, 2016. p. 85-94. DOI : 10.1145/2998392.2998404.Dependent Object Types
Lausanne, EPFL, 2016.Specialising Parsers for Queries
Lausanne, EPFL, 2016.Implementing Higher-Kinded Types in Dotty
2016. Scala Symposium 2016, Amsterdam, Oct 30-31, 2016. DOI : 10.1145/2998392.2998400.Auto-Collections for Scala
2016
Delaying arrays
2016
The Function Passing Model: Types, Proofs, and Semantics
2016
A Study of Capability-Based Effect Systems
2016.Uniting Language Embeddings for Fast and Friendly DSLs
Lausanne, EPFL, 2016.Call Graphs for Languages with Parametric Polymorphism
2016
The Essence of Dependent Object Types
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
Lausanne, EPFL, 2016.Function Passing: A Model for Typed, Distributed Functional Programming
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
2015
Isolates, channels, and event streams for composable distributed programming
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
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
2015. ICFP 2015, Vancouver, BC, Canada, August 31 – September 02, 2015. DOI : 10.1145/2784731.2784760.Common Subexpression Elimination in Dotty
2015
Implementing Method Type Specialisation In Dotty
2015
Parser Macros for Scala
2015
Style Checking With Scala.Meta
2015
Functional Pearl: A SQL to C Compiler in 500 Lines of Code
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
2015
RRB Vector: A Practical General Purpose Immutable Sequence
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
Lausanne, EPFL, 2015.Interoperation between Miniboxing and Other Generics Translations
2015.Moment Semantics for Reversible Rule-Based Systems
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
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
2015.Improving the Interoperation between Generics Translations
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
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)
2015.Distributed Programming via Safe Closure Passing
2015. Programming Language Approaches to Communication and Concurrency Centric Systems, London, UK, April 18, 2015.Macros in sbt: Problem Solved!
2015
Obey: Code Health for Scala.Meta
2015
Traversal Query Language For Scala.Meta
2015
2014
Reversible Sesqui-Pushout Rewriting, Graph Transformation
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)
2014-01-10.Computing with an SMT Solver
2014. DOI : 10.1007/978-3-319-09099-3_2.BlitzViews – lazy parallel operations for Scala collections
2014