Janwillem Swalens

Janwillem Swalens
Nokia Bell Labs · Applications Platforms & Software Systems Lab (APSS)

PhD in Computer Science

About

9
Publications
966
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
20
Citations
Introduction
I’m currently working as a researcher in computer science at Nokia Bell Labs. Previously, I obtained a PhD at the Software Languages Lab (SOFT) of Vrije Universiteit Brussel in Belgium. My research focuses on programming languages for parallelism, concurrency, and distribution. For my PhD, I developed Chocola, a programming language that combines three concurrency models: futures, transactions, and actors. Currently, I work on programming languages and abstractions for distributed streaming.
Additional affiliations
December 2019 - present
Nokia Bell Labs
Position
  • Researcher
September 2019 - December 2019
Vrije Universiteit Brussel
Position
  • PostDoc Position
September 2013 - September 2018
Vrije Universiteit Brussel
Position
  • PhD Student

Publications

Publications (9)
Article
Programmers often combine different concurrency models in a single program, in each part of the program using the model that fits best. Many programming languages, such as Clojure, Scala, and Java, cater to this need by supporting different concurrency models. However, existing programming languages often combine concurrency models in an ad hoc way...
Conference Paper
Full-text available
Developers often combine different concurrency models in a single program, in each part of the program using the model that fits best. Many programming languages, such as Clojure, Scala, and Haskell, cater to this need by supporting different concurrency models. However, they are often combined in an ad hoc way and the semantics of the combination...
Conference Paper
Full-text available
Many programming languages, such as Clojure, Scala, and Haskell, support different concurrency models. In practice these models are often combined, however the semantics of the combinations are not always well-defined. In this paper, we study the combination of futures and Software Transactional Memory. Currently, futures created within a transacti...
Conference Paper
Full-text available
Developers often require different concurrency models to fit the various concurrency needs of the different parts of their applications. Many programming languages, such as Clojure, Scala, and Haskell, cater to this need by incorporating different concurrency models. It has been shown that, in practice, developers often combine these concurrency mo...
Conference Paper
Full-text available
Multiple inheritance is often criticised for the ambiguity that arises when multiple parents want to pass on a feature with the same name to their offspring. A survey of programming languages reveals that no programming language has an inherently implicit and dynamic approach to resolve this ambiguity. This paper identifies just-in-time inheritance...
Data
Many programming languages support different concurrency models. In practice these models are often combined, however the semantics of the combinations are not always well-defined. We studied the combination of futures and Software Transactional Memory. We introduce transactional tasks, a mechanism to create futures in a transaction. Transactional...
Data
Full-text available
Many programming languages support different concurrency models. In practice these models are often combined, however the semantics of the combinations are not always well-defined. We studied the combination of futures and Software Transactional Memory. We introduce transactional tasks, a mechanism to create futures in a transaction. Transactional...
Article
Full-text available
In the past decades, many different programming models for managing concurrency in applications have been proposed, such as the actor model, Communicating Sequential Processes, and Software Transactional Memory. The ubiquity of multi-core processors has made harnessing concurrency even more important. We observe that modern languages, such as Scala...
Conference Paper
Full-text available
Traffic monitoring or crowd management systems produce large amounts of data in the form of events that need to be processed to detect relevant incidents. Rule-based pattern recognition is a promising approach for these applications, however, increasing amounts of data as well as large and complex rule sets demand for more and more processing power...

Network

Cited By

Projects

Project (1)
Archived project
Chocola is a programming language that combines three concurrency models: futures, transactions, and actors. More at http://soft.vub.ac.be/~jswalens/chocola/