My research interests include programming languages, distributed systems and software engineering.
See here for a recent list.
I study decentralized systems, blockchains and smart contract platforms, both from a language engineering perspective (designing safer languages to write smart contracts) as well as from a systems engineering perspective (improving the transaction scalability of such systems). Can we use secure distributed objects as the foundation for safer smart contracts?
Below is a brief overview of past research projects I have worked on, with pointers where to learn more.
At Bell Labs between 2018 and 2021 I’ve worked on novel developer tools that “learn from code”, including code completion from natural language using neural language models, code snippet retrieval via neural code search and a package recommendation engine based on machine-learned representations of software libraries (import2vec). These tools have been used by software developers at Nokia.
At Bell Labs between 2015 and 2017 I co-architected a distributed stream processing platform called World Wide Streams which is now in use inside Nokia. My main contribution was in the platform’s dataflow specification language XStream and its compiler. Dataflows written in XStream are compiled into query plans and seamlessly deployed across a wide-area compute infrastructure (across device, edge and core Cloud).
When I started my PhD in the early 2000s, smartphones as we know them today did not exist. There was no iPhone, no Android. There were awkward precursors to smartphones running on Windows CE, Symbian or J2ME. Developing applications for phones was a real pain, and mobile connectivity was expensive, slow and scarce (2G networks). Social networks barely existed. And yet, we understood the power of connected apps on phones. We just had to figure out a better way to program these apps.
It was in that context that me and colleagues at the VUB Software Languages Lab defined Ambient-oriented programming, a new programming paradigm geared towards writing peer-to-peer applications running on mobile “ad hoc” networks. A defining feature of the paradigm was that network failures are treated as a normal mode of operation.
AmbientTalk was featured in MIT Technology Review, in the Belgian Techzine Datanews (article in Dutch), and software developed with AmbientTalk won prizes at DroidCon, such as a collaborative drawing editor and a peer-to-peer poker game.
Over the many years as a PhD and Post-doc student at the Vrije Universiteit Brussel, I co-authored multiple papers on AmbientTalk and its features. Probably the best overview paper is this one from 2007.
My PhD thesis ultimately focused on a very specific feature of AmbientTalk called ambient references: object pointers designed for mobile networks.
I worked on a variety of concurrency control abstractions for programming languages, with a primary focus on a particular concurrency control paradigm called the Actor Model. See for instance our taxonomy paper “43 years of actors”.
I did research on new ways to compose objects in object-oriented programs, taking a lot of inspiration from the original research work on Traits.
Our AmbientTalk language supports traits with state and visibility control by exploiting lexical nesting.
See this post.
A variety of software projects can be found on my GitHub page.