Publications
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.
- Paper:
- Presentation:
- pptx
- Project page:
- available here
- Citation:
- BibTeX
We develop a sound static type system for JavaScript to detect violations of Private Browsing Mode in third-party Firefox extensions.
- Paper:
- Presentation:
- pptx
- Project page:
- available here
- Technical report:
- Citation:
- BibTeX
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.
- Paper:
- Presentation:
- pptx
- Project page:
- available here
- Citation:
- BibTeX
We define a model of overlays that dynamically compose declarative UI fragments onto a base document, and define conflict detection algorithms over this model.
- Paper (ACM DL):
- Presentation:
- pptx
- Project page:
- available here
- Citation:
- BibTeX
We present S5, a semantics for the strict mode of the ECMAScript 5.1 (JavaScript) programming language.
- Paper (ACM DL):
- Project page:
- available here
- Citation:
- BibTeX
We define a concise, executable formal model of event behavior in the DOM, with high fidelity to the DOM specification.
- Paper:
- Project page:
- available here
- Citation:
- BibTeX
I examine the challenges in supporting powerful, pervasive extensibility in web-browsers, and propose mechanisms for enabling better analytical tools.
- Paper:
- Presentation:
- html
- Project page:
- available here
- Citation:
- BibTeX
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.
- Paper:
- Project page:
- available here
- Citation:
- BibTeX
We argue that browser extensions are themselves an important facet of web applications, and are in need of serious programing-language attention.
- Paper (ACM DL):
- Presentation:
- ppt
- Project page:
- available here
- Citation:
- BibTeX
We propose a language extension to JavaScript, based on dynamic aspect weaving, that would enable principled, semantically sound third-party modification of existing code.
- Paper (ACM DL):
- Presentation:
- pptx
- Project page:
- available here
- Citation:
- BibTeX
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.
- Paper (ACM DL):
- Slides:
- ppt
- Citation:
- BibTeX
- Project page:
- available here
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.
- Paper (ACM DL):
- Slides:
- ppt
- Citation:
- BibTeX
- Project page:
- available here
Contact
- Email (essential):
- (first initial + last name) {at} cs.brown.edu
- Location (likely):
- Department of Computer Science, Office 309
- Post (possible):
- Brown University / Department of Computer Science / 115 Waterman Street, 4th floor / Providence, RI 02912-1910


