Erik Ernst

Senior Software Engineer
Google, Inc.
Formerly Associate Professor
Department of Computer Science
Aarhus University

I used to spend all my time playing the classical guitar, but the last several years have been dedicated to computer science, in particular to the design and implementation of programming languages.

In my copious spare time I like to walk around in beautiful nature, (especially mountains, when given the opportunity), visit friends and have long discussions about life, death, the universe, and how to save it, take pictures, read good short stories (find it a lot harder to get around to actually reading any long stories), make vegetarian food (or fish), participate in eating it, travel around the world, and all that jazz. Often taking a look at slashdot and, every day, checking out the newest Dilbert and Userfriendly strip.

Research Interests

My research is focusing on programming languages, from such points of view as design, implementation, static analysis, and "philosophy". The cornerstone is the design and implementation of the language gbeta, a language in the Scandinavian OO tradition (i.e., weird, unless you are already addicted to it).

This work has had an actual impact in several ways. The notions of family polymorphism [33], propagating combination [38], and higher-order hierarchies [25] directly inspired path-dependent types in Scala, deep mixin composition which keeps coming up as a desirable feature for Scala, and as a particularly elegant solution to the so-called expression problem [23]. Virtual classes were introduced in the language BETA in the 70'ies, and generally considered incompatible with sound typing. The work setting out from the gbeta static analysis and developed together with Klaus Ostermann and William Cook [19] showed that virtual classes can be handled in a type safe manner, an open problem for 30 years. I was also a member of the group who invented wildcarded types and added them to the Java programming language [21,22], a feature which has made generics more flexible for millions of programmers. Later, collaboration with Sophia Drossopoulou and Nick Cameron produced a formal model of wildcards [17,11]. With Mario Südholt and Bruno De Fraine, I have proposed a model of the core of aspect-oriented programming languages [8,2], separating the accidental from the essential elements of this kind of programming language. Currently, I am a member of the TC52 ECMA standardization committee for the Dart programming language. I'm a founding member of the IFIP 2.16 working group on programming language design, and I've been the program chair of ECOOP 2007 as well as Modularity 2014. All in all, this amounts to a certain amount of impact on programming languages and the programming language research community, which was also reflected by the reception of the Dahl-Nygaard jr. Award in 2010.

  1. Thomsen, J. G., Clausen, C., Andersen, K. J., Danaher, J., and Ernst, E. Reducing lookups for invariant checking, in proceedings of ECOOP 2013, pages 426-450, Springer Verlag.
  2. De Fraine, B., Ernst E., and Südholt, M. Essential AOP: The A Calculus, in TOPLAS, vol. 34, issue 3, October 2012, ACM 2012, ISSN 0164-0925.
  3. Thomsen, J. G., Brabrand, C., Schwartzbach, M., and Ernst, E. WebSelF: A Web Scraping Framework, in proceedings of ICWE 2012, LNCS 7387, pages 347--361, Springer Verlag.
  4. Ingesman, M. D., and Ernst, E. Lifted Java: A Minimal Calculus for Translation Polymorphism, in Journal of Object Technology vol. 11, no. 1, 2012, pages 1--23 (doi:10.5381/jot.2012.11.1.a2).
  5. Ingesman, M. D., and Ernst, E. Lifted Java: A Minimal Calculus for Translation Polymorphism, in proceedings of TOOLS 2011, pages 179--193, LNCS 6705, Springer-Verlag.
  6. Ernst, E. Secret Valley, in proceedings of ECOOP 2010, pages 379, LNCS 6183, Springer-Verlag.
  7. Madsen, A. B., and Ernst, E. Revisiting Parametric Types and Virtual Classes, in proceedings of TOOLS 2010, pages 233--252, LNCS 6141, Springer Verlag.
  8. De Fraine, B., Ernst, E., and Südholt, M. Essential AOP: The A Calculus, in proceedings ECOOP 2010, pages 101--125, LNCS 6183, Springer Verlag.
  9. Nielsen, A. B., and Ernst, E. Virtual Class Support at the Virtual Machine Level, in proceedings of VMIL 2009, pages 1--10, ACM Digital Library, ISBN 978-1-60558-874-2.
  10. Ernst, E. 2009, First-Class Object Sets, in Types for Proofs and Programs, Springer Verlag, Berlin / Heidelberg, pp 83-99.
  11. Cameron, N.R., Drossopoulou, S., Ernst, E. 2008, A Model for Java with Wildcards, in Proceedings of ECOOP 2008, Paphos, Springer Verlag.
  12. Nielsen, A.B., Ernst, E. 2008, Optimizing Dynamic Class Composition in a Statically Typed Language, in Objects, Components, Models and Patterns, Springer Verlag, Berlin/Heidelberg, pp 161-177.
  13. Ernst, E., Bergmans, L., Gybels, K (eds.). Special Issue: Software-engineering, Properties of Language and Aspect Technologies, Journal of Object Technology, vol. 7 nr. 9, 2008.
  14. Ernst, E. (red.) 2007, ECOOP 2007 - Object-Oriented Programming, Springer Verlag, Berlin / Heidelberg.
  15. Ernst, E., Ungar, D. 2007, Point/Counterpoint, IEEE Software, vol. 24 nr. 5, pp. 72-75.
  16. Ernst, E. 2007, Primitive Associations, in Proceedings of the International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO), in conjunction with ECOOP 2007.
  17. Cameron, N., Ernst, E., Drossopoulou, S. 2007, Towards an Existential Types Model for Java with Wildcards, in Proceedings of the 9th Workshop on Formal Techniques for Java-like Programs (FTfJP), in association with ECOOP 2007, pp 1-13.
  18. Erik Ernst, Klaus Ostermann, and William R. Cook. A Virtual Class Calculus. Extended version of the POPL'06 paper with the same title. PDF.
  19. Erik Ernst, Klaus Ostermann, and William R. Cook. A Virtual Class Calculus. In Proceedings of POPL'06.
  20. Erik Ernst. Method Mixins. In Proceedings of NODe2005.
  21. Mads Torgersen, Erik Ernst, and Christian Plesner Hansen. Wild FJ. In Proceedings of FOOL'12.
  22. Mads Torgersen, Christian Plesner Hansen, Erik Ernst, Peter von der Ahé, Gilad Bracha, and Neal Gafter. Adding Wildcards to the Java Programming Language. In Proceedings of SAC 2004, pages 1289-1296. Nicosia, Cyprus, March 2004. ACM Press. BibTeX.
  23. Erik Ernst. The Expression Problem, Scandinavian Style. In Proceedings of MASPEGHI 2004, in association with ECOOP 2004.
  24. Erik Ernst. Simple, eh? In Proceedings of Software Engineering Properties of Languages for Aspect Technologies 2004, SPLAT04, in association with AOSD 2004. BibTeX, PDF.
  25. Erik Ernst. Higher-Order Hierarchies. In Proceedings of ECOOP 2003, LNCS 2743, pages 303-329, Darmstadt, Germany, July 2003. Springer-Verlag. BibTeX, Postscript, Postscript/gzip.
  26. David H. Lorenz and Erik Ernst. Aspects and Polymorphism in AspectJ. In Proceedings of AOSD 2003, Mehmet Aksit (ed.), Boston, MA, USA, March 2003. ACM Press. BibTeX.
  27. Erik Ernst. Separation of Concerns. In Proceedings of Software Engineering Properties of Languages for Aspect Technologies 2003, SPLAT03, in association with AOSD 2003. BibTeX, PDF.
  28. Erik Ernst. Safe Dynamic Multiple Inheritance. Nordic Journal of Computing, 9(3), Fall 2002, pages 191-208. BibTeX, PDF.
  29. Gabriel Arévalo, Andrew Black, Yania Crespo, Michael Dao, Erik Ernst, Peter Grogono, Marianne Huchard, and Markku Sakkinen. The Inheritance Workshop. In Object-Oriented Technology: ECOOP 2002 Workshop Reader, LNCS 2548, pages 117-134, Heidelberg, Germany, 2002. Springer-Verlag. BibTeX.
  30. Erik Ernst. Safe Dynamic Multiple Inheritance. In Kasper Østerbye (ed.), Proceedings of the Nordic Workshop on Software Development Tools and Techniques, 10th NWPER Workshop, pages 169-182, Copenhagen, Denmark, 2002. The IT-University of Copenhagen. Note: The above paper in Nordic Journal of Computing, 9(3) 2002, is an extended and reworked version of this paper. BibTeX.
  31. Erik Ernst. Loosely Coupled Class Families. Accepted at the workshop "Advanced Separation of Concerns" at ECOOP 2001. BibTeX, Postscript, Postscript/gzip.
  32. Erik Ernst. What's in a Name?. Accepted at the workshop "Feature Interaction of Composed Systems" at ECOOP 2001. BibTeX, PDF.
  33. Erik Ernst. Family Polymorphism. In Proceedings ECOOP 2001, LNCS 2072, pages 303--326, Budapest, Hungary, June 2001. Springer-Verlag. BibTeX, Postscript, Postscript/gzip.
  34. Erik Ernst. Syntax Based Modularization: Invasive or Not?. Accepted at the workshop "Advanced Separation of Concerns" at OOPSLA 2000. BibTeX, Postscript, Postscript/gzip.
  35. Laurent Bussard, Lee Carver, Erik Ernst, Mathias Jung, Martin Robillard, and Andreas Speck. Safe Aspect Composition. In Object-Oriented Technology: ECOOP'00 Workshop Reader. BibTeX.
  36. Erik Ernst. Separation of Concerns and Then What?. Accepted at the workshop "Aspects and Dimensions of Concern" at ECOOP 2000. BibTeX, Postscript, Postscript/gzip.
  37. Erik Ernst. gbeta -- a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. Ph.D. thesis. Department of Computer Science, Aarhus University, Denmark, 1999. BibTeX, Postscript/A4, Postscript/A4/gzip.
  38. Erik Ernst. Propagating class and method combination. In Proceedings ECOOP'99, LNCS 1628, pages 67--91, Lisboa, Portugal, June 1999. Springer-Verlag. BibTeX, Postscript, Postscript/gzip.
  39. Erik Ernst. Dynamic inheritance in a statically typed language. Nordic Journal of Computing, 6(1):72--92, Spring 1999. BibTeX, Postscript, Postscript/gzip.
  40. Erik Ernst. Dynamic inheritance and static analysis can be reconciled. In Khalid Mughal and Andreas L. Opdahl, editors: Proceedings of NWPER'98: The Eighth Nordic Workshop on Programming Environment Research, Ronneby/Sweden, August 1998. Department of Informatics and Department of Information Science, University of Bergen, Norway. Note: The above paper in Nordic Journal of Computing, 6(1) 1999, is an extended and reworked version of this paper. BibTeX, Postscript, Postscript/gzip.
  41. Erik Ernst. Relative types. In Frank Gerhardt, Erik Ernst, and Luigi Benedicenti, editors: Position Papers from the 8th Workshop for PhD Students in Object-Oriented Systems, DAIMI-PB 535. Department of Computer Science, Aarhus University, Denmark, 1999. BibTeX, Postscript, Postscript/gzip.
  42. Erik Ernst. Constraint based inheritance. In Erik Ernst, Lutz Wohlrab, and Frank Gerhardt, editors: Proceedings of the 7th Workshop for PhD Students in Object-Oriented Systems, DAIMI PB-526, pages 25--34, Aarhus, Denmark, 1997, Dept. of Computer Science, Aarhus University. BibTeX, Postscript, Postscript/gzip.

Signed by: Last Modified: 06-Sep-2014