Membranes in Javascript

Membranes are a powerful new feature enabled by Javascript proxies, with various use cases. The goal of a membrane is to fully isolate two object graphs.

Operational Semantics of AmbientTalk

Together with PhD students Christophe Scholliers and Dries Harnie, I recently completed an operational semantics of our AmbientTalk programming language. We believe this is the first formal account of an actor language based on communicating event loops. The paper is currently available as a techreport. From the abstract:

Designing the ECMAScript Reflection API

For the past two years, I have been working on a new Reflection API for ECMAScript (the Javascript standard) together with Mark Miller. Its most novel feature is its support for proxies, objects whose behavior in response to a large number of built-in functions and operators can be controlled in Javascript itself.

Last week, I finally finished a paper that not only describes the new API in some detail, but also describes the principles that helped steer our design.

Why Programming Languages?

When I present my research work on programming languages, people often ask me "why do you need a new programming language to solve this problem? Why not just implement it as a library?" Or, I get asked "why didn't you implement it as an extension to {some existing language}?" In this essay I try to make explicit some of the goals and motivations behind language design.

AmbientTalk at Emerging Languages Camp

Last July, I presented AmbientTalk at the first Emerging Languages Camp at O'Reilly's OSCON in Portland.

Harmony Proxies in Firefox

Andreas Gal from Mozilla is implementing the Proxy API that I developed at Google in collaboration with Mark S. Miller. This API enables the creation of dynamic proxies that can intercept a variety of operations applied to Javascript objects. Proxies are currently available in the Firefox 3.7a pre-release and are scheduled to be included in the next Ecmascript standard. I am in the process of writing up a small tutorial to introduce this new feature.

DCDP Workshops

I am organizer of the first Workshop on Decentralized Coordination of Distributed Processes (DCDP), to be held June 10th in conjunction with DisCoTec 2010 in Amsterdam, The Netherlands.


Javascript at Google Research

I am currently a Visiting Faculty member at Google in Mountain View, USA. Together with Mark Miller I am experimenting with proposed extensions to the Javascript programming language. Concretely:

OOPSLA Tutorial

In october 2009, I presented a tutorial on event-driven concurrency at OOPSLA 2009 in Orlando, Florida.


Subscribe to Invokedynamic RSS