Research (under construction)

Research in a Nutshell

The central theme of my research is the design and implementation of programming languages together with their meta-level interface. Through the design of the meta-level interface, the investigation of tool support happens in tandem with the programming model and abstractions.

During my PhD research I applied such a research vision to deal with the effects engendered by partial failures in the development of applications running on mobile ad hoc networks (MANETs). In order to support distributed programming in such a dynamic networks, I investigated leased-based programming abstractions. To support the development of MANET applications, I studied tool support in the form of distributed debugger.

My two current projects are:

  • Secure programming technology. In particular I am currently investigating security in the context of rich internet applications that offer collaborative functionality. In this context, the main goal is to understand which security risks need to be tackled at application level, and design JavaScript extensions for expressing application-specific security policies and having them enforced at run-time.
  • Concurrent programming. With the widespread of multicore processors, concurrent programming has become more important and complex software systems started to mix a wide range of concurrency models (e.g. actors, futures, STM). Software tools, however, do not support such diversity and in particular debuggers, typically work at the lowest abstraction level. I am particularly interested in studying high-level debugging techniques that can adapt their toolbox to concurrency model at hand. A second topic of my interest is garbage collection on large-scale many-cores systems.

Interests

My broader research interests include software engineering, integrated software environments, concurrent and distributed programming, reflection, secure programming models and abstractions, mobile software development, cloud computing, programming in the internet of things, cross-platform software development.

When possible, I like to participate in programming contests and hackathons with colleagues or students and try to get my hands dirty with new technology and build together some crazy applications. It usually entails a weekend project with its equal share of joy and frustration. In the past this has resulted in cool demo applications like Urbiflock, wePoker, and mobilePolla.

Lately I have focused my hacking efforts on two topics:

  • Physical computing and visual programming languages for education.
  • A programming framework for teaching distributed algorithms.

Projects and Grants

Ongoing research projects

  • Tearless IWT SBO project (2016-2019). It aims to explore programming technology and tool support to ease the development of rich internet applications (RIAs) that offer collaborative and off-line functionality at global scales.
  • SeCloud Innoviris SecurIT project (2015-2018). It aims to investigate technology that developers can apply, at a sustainable effort, to safeguard their JavaScript application from application-specific security concerns. In particular, this technology will take the form of a program analysis that enforces security policies made explicit in an application through JavaScript constructs, and a machine learning component for reducing the overhead of both their specification and enforcement.
  • MetaConc FWO project (2016-2018). Joint project in collaboration with the Institute for System Software at the Johannes Kepler Universität Linz (JKU). It aims to explore meta-level engineering and tooling for complex concurrent systems. In particular, we investigate both language implementation support to capture essential properties of concurrency models (research led by JKU’s group), and debugging support built on top of such substrate to assist developers in finding errors, and improving program comprehension of complex concurrent systems (research led by myself).

Past Research Projects and Grants

  • Innoviris Feasibility Study for MOSCOU (MObile Simple COUponing) project with Monizze (June - September 2014). Its goal was to study the viability of developing a new way of creating, distributing and redeeming “electronic” coupons. Digital coupons are implemented at a technical level by smart objects representing rich kinds of information. The project prototyped the core functionality of the mobile wallets on top of distributed object technology using a mobile cross-platform approach.
  • Innoviris PRFB personal project (profile A, 2008-2011)

Talks

Some of the talks I have given over the recent past (with link to slides):

  • “A Tale of Distributed Transparency and Partial Failures”. Keynote talk at the 13th International Conference on Advances in Mobile Computing and Multimedia (MoMM 2015), Brussels, Belgium, 11 December 2015. [ presentation]
  • “Reflecting on Advanced Distributed Programs”. Talk at the first Virtual Machine Meetup (VMM 2014), ETH Zurich, Switzerland, 11 September 2014. [ presentation]
  • “Programming Languages Shape Thought”. Talk at the CampustTalks #20: International Woman’s Day with The VUB Doctoral School, Brussels, Belgium, 4 March 2014.
  • “Cloudless distributed programming in Android”. Invited talk at GDG Barcelona both given at Universitat Politecnica de Catalunya (UPC) in Barcelona and at Universitat Autonoma de Barcelona (UAB) in Bellaterra, Spain, March 1, 2013. [ presentation]
  • “Scripting Mobile Devices with AmbientTalk” with Prof. Dr. Wolfgang De Meteur. Talk at Embedded room at Free Open Source Software Developer’s European Meeting (FOSDEM), Brussels, Belgium, February 6-7, 2010.[ presentation]