Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Erik Ernst

dblp:45/6633 · DBLP profile ↗
← Back
12ranked-venue papers
7as first author
0since 2021 · last 2017
0000-0002-1705-609XORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 12 · 7 first-authorDatabases, data management, data science and information retrieval · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Programming languages and type systems · 100%

Topics — the 9 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems
type systems
0.222012
Essential AOP: The a calculus · ACM Trans. Program. Lang. Syst. 2012
A virtual class calculus · POPL 2006
Programming languages and type systems
aspect-oriented programming
0.112012
Essential AOP: The a calculus · ACM Trans. Program. Lang. Syst. 2012
Programming languages and type systems › type systems
type soundness
0.112012
Essential AOP: The a calculus · ACM Trans. Program. Lang. Syst. 2012
Programming languages and type systems
language design
0.112006
A virtual class calculus · POPL 2006
Programming languages and type systems › type systems
soundness
0.112006
A virtual class calculus · POPL 2006
Programming languages and type systems
type theory
0.112006
A virtual class calculus · POPL 2006
Programming languages and type systems › object-oriented programming
virtual classes
0.112006
A virtual class calculus · POPL 2006
Programming languages and type systems
object-oriented programming
0.122012
Essential AOP: The a calculus · ACM Trans. Program. Lang. Syst. 2012
A virtual class calculus · POPL 2006
Programming languages and type systems › type systems › polymorphism
family polymorphism
0.012006
A virtual class calculus · POPL 2006

Methods — techniques the papers use, named apart from their topics

type soundness proof · 0.1first-class closures · 0.1coq · 0.1static analysis · 0.1operational semantics · 0.1
YearPublicationVenuePosition
2017 Message safety in Dart
abstract
Unlike traditional static type checking, the type system in the Dart programming language is unsound by design, even for fully annotated programs. The rationale has been that this allows compile-time detection of likely errors and enables code completion in integrated development environments, without being restrictive on programmers. Despite unsoundness, judicious use of type annotations can ensure useful properties of the runtime behavior of Dart programs. We present a formal model of a core of Dart with a focus on its type system, which allows us to elucidate the causes of unsoundness. Our main contribution is a characterization of message-safe programs and a theorem stating that such programs will never encounter ‘message-not-understood’ errors at runtime. Message safety is less restrictive than traditional type soundness, and we argue that it forms a natural intermediate point between dynamically typed and statically typed Dart programs.
Erik Ernst, Anders Møller, Mathias Schwarz, Fabio Strocco
Sci. Comput. Program.1
2015 Message safety in Dart
abstract
Unlike traditional static type checking, the type system in the Dart programming language is unsound by design, even for fully annotated programs. The rationale has been that this allows compile-time detection of likely errors and enables code completion in integrated development environments, without being restrictive on programmers. Despite unsoundness, judicious use of type annotations can ensure useful properties of the runtime behavior of Dart programs. We present a formal model of a core of Dart with a focus on its type system, which allows us to elucidate the causes of unsoundness. Our main contribution is a characterization of message-safe programs and a theorem stating that such programs will never encounter 'message not understood' errors at runtime. Message safety is less restrictive than traditional type soundness, and we argue that it forms a natural intermediate point between dynamically typed and statically typed Dart programs.
Erik Ernst, Anders Møller, Mathias Schwarz, Fabio Strocco
DLS1
2013 Reducing Lookups for Invariant Checking
Jakob G. Thomsen, Christian Clausen, Kristoffer Just Arndal Andersen, John Danaher 0002, Erik Ernst
ECOOP5
2012 WebSelF: A Web Scraping Framework
Jakob G. Thomsen, Erik Ernst, Claus Brabrand, Michael I. Schwartzbach
ICWE2
2012 Essential AOP: The a calculus
abstract
Aspect-oriented programming (AOP) has produced interesting language designs, but also ad hoc semantics that needs clarification. We contribute to this clarification with a calculus that models essential AOP, both simpler and more general than existing formalizations. In AOP, advice may intercept method invocations, and proceed executes the suspended call. Proceed is an ad hoc mechanism, only usable inside advice bodies. Many pointcut mechanisms, for example, wildcards, also lack regularity. We model proceed using first-class closures, and shift complexity from pointcuts to ordinary object-oriented code. Two well-known pointcut categories, call and execution , are commonly considered similar. We formally expose their differences, and resolve the associated soundness problem. Our calculus includes type ranges , an intuitive and concise alternative to explicit type variables that allows advice to be polymorphic over intercepted methods. We use calculus parameters to cover type safety for a wide design space of other features. Type soundness is verified in Coq.
Bruno De Fraine, Erik Ernst, Mario Südholt
ACM Trans. Program. Lang. Syst.2
2010 Secret Valley
Erik Ernst
ECOOP1
2010 Essential AOP: The A Calculus
Bruno De Fraine, Erik Ernst, Mario Südholt
ECOOP2
2008 A Model for Java with Wildcards
Nicholas Cameron 0001, Sophia Drossopoulou, Erik Ernst
ECOOP3
2006 A virtual class calculus
abstract
Virtual classes are class-valued attributes of objects. Like virtual methods, virtual classes are defined in an object's class and may be redefined within subclasses. They resemble inner classes, which are also defined within a class, but virtual classes are accessed through object instances, not as static components of a class. When used as types, virtual classes depend upon object identity -- each object instance introduces a new family of virtual class types. Virtual classes support large-scale program composition techniques, including higher-order hierarchies and family polymorphism. The original definition of virtual classes in BETA left open the question of static type safety, since some type errors were not caught until runtime. Later the languages Caesar and gbeta have used a more strict static analysis in order to ensure static type safety. However, the existence of a sound, statically typed model for virtual classes has been a long-standing open question. This paper presents a virtual class calculus, VC, that captures the essence of virtual classes in these full-fledged programming languages. The key contributions of the paper are a formalization of the dynamic and static semantics of VC and a proof of the soundness of VC.
Erik Ernst, Klaus Ostermann, William R. Cook
POPL1
2003 Higher-Order Hierarchies
Erik Ernst
ECOOP1
2001 Family Polymorphism
Erik Ernst
ECOOP1
1999 Propagating Class and Method Combination
Erik Ernst
ECOOP1