ABOUT

I am Mattias De Wael, a computer scientist with a passion for teaching. I hold a Ph.D degree and graduated with a dissertation on "Just-in-Time Data Structures". I am specialised in the area of programming, programming language design, and programming language implementation. On this website you can find more information about my education, my research activities, and my teaching activities.

 Resume  Resume (printer friendly)

EDUCATION

Ph.D. in Computer Sciences

Received in 2016
N.A.
Vrije Universiteit Brussel
 Dissertation:
Just-in-Time Data Structures

Master in Computer Sciences

Received in 2011
Greatest Distinction
Vrije Universiteit Brussel
 Dissertation:
Fork/Join Computations

Bachelor in Applied Informatics

Received in 2008
Distinction
Hogeschool Gent

RESEARCH

I have studied various topics over the years. Here you find a selection.

Just-in-Time Inheritance

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 as the first implicit and dynamic inheritance mechanism. The key idea of just-in-time inheritance is that one of the parents is favoured over the others, which resolves the ambiguity, and that the favoured parent can change at runtime. However, just-in-time inheritance is not the silver bullet to solve all ambiguity problems heir to multiple inheritance, because it is not applicable in all scenarios. We conclude that the applicability of just-in-time inheritance is to be found in systems where multiple inheritance is used to model an "is-a-OR-is-a"-relation, rather than the more traditional "is-a-AND-is-a"-relation.

 Paper

Just-in-Time Data Structures

We observe that for some programs, relying on a single data representation can be less performant than changing the representation of the data at runtime. Hence, we argue in favour of changing between different data representations at runtime. We call this just-in-time representation changes.

Implementing representation changes is a tedious and error-prone task, for which little to no support exists in contemporary programming languages. We propose a new programming language in which representation changes are readily supported.

 Paper  Website  Thesis

Partitioned Global Address Space Languages

The Partitioned Global Address Space (PGAS) model is a parallel programming model that aims to improve programmer productivity while at the same time aiming for high performance. The main premise of PGAS is that a globally shared address space improves productivity, but that a distinction between local and remote data accesses is required to allow performance optimizations and to support scalability on large-scale parallel architectures. To this end, PGAS preserves the global address space while embracing awareness of nonuniform communication costs.

 Paper

Fork/Join Parallelism in the Wild

While, in theory, Fork/Join is a simple and effective technique to expose parallelism in applications, we observed that in practice many developers get it wrong. In this work, we identified three recurring anti-patterns that potentially limit parallel performance.

 Paper  Website  Slides

The Case of the Missing Cache Hits

My initial experiments with the Tilera64 processor (64 cores in 8x8 grid) led me to discover an undocumented anomaly in the hardware design.

 Paper

TEACHING

I have been a teaching assistant for "Structure of Computer Programs I" (prof. Viviane Jonckers) and "Interpretation of Computer Programs I" (prof. Theo D'Hondt) since 2011. In both courses I have been responsible for the exercise sessions as well as the clinic sessions.

Structure of Computer Programs

In this course we study the first three chapters of the SICP book: "Building Abstractions with Procedures", "Building Abstractions with Data", and "Modularity, Objects, and State".

Interpretation of Computer Programs

In this course we study the last two chapters of the SICP book: "Metalinguistic Abstraction" and "Computing with Register Machines".

CONTACT

My Internet Location

 Email
 Twitter

My Home Location

Paul Fredericqstraat 10
9000 Ghent - Belgium

My Work Location

Room 10F736
Vrije Universiteit Brussel
Pleinlaan 2
1050 Brussels - Belgium