Benjamin Lerner


copyright notice

We explore an extensible product line of type systems for JavaScript, and explain the engineering and ergonomic choices choices we made in designing this system.

We develop a sound static type system for JavaScript to detect violations of Private Browsing Mode in third-party Firefox extensions.

We develop a static type system for analyzing jQuery client code for query errors, where jQuery results may contain too many, too few, or simply the wrong page elements, leading to unintended runtime behavior.

We define a model of overlays that dynamically compose declarative UI fragments onto a base document, and define conflict detection algorithms over this model.

We present S5, a semantics for the strict mode of the ECMAScript 5.1 (JavaScript) programming language.

We define a concise, executable formal model of event behavior in the DOM, with high fidelity to the DOM specification.

I examine the challenges in supporting powerful, pervasive extensibility in web-browsers, and propose mechanisms for enabling better analytical tools.

We present C3, an implementation of the HTML/CSS/JS platform designed for web-client research and experimentation, particularly the role of extensibility throughout the platform.

We argue that browser extensions are themselves an important facet of web applications, and are in need of serious programing-language attention.

We propose a language extension to JavaScript, based on dynamic aspect weaving, that would enable principled, semantically sound third-party modification of existing code.

We present a novel approach to searching for error messages in programs with type errors (currently, Caml and C++), that provides better error messages while simplifying compiler construction.

We present a new way to generate type-error messages in a polymorphic, implicitly, and strongly typed language. This approach separates error-message generation from typechecking, and improves feedback to programmers.


download vcard icon
Email (essential):
Location (likely):
Department of Computer Science, Office 309
Post (possible):
work Post-Doctoral Research Associate Brown University / Department of Computer Science / 115 Waterman Street, 4th floor / Providence, RI 02912-1910