Homepage of Michael Faes
I am a postdoc at the Laboratory for Software Technology at ETH Zurich, where I work with my former PhD advisor, Prof. Thomas R. Gross. I am also a lecturer of Computer Science at the School of Engineering, University of Applied Sciences and Arts Northwestern Switzerland (FHNW).
You can contact me by email: firstname.lastname@example.org.
My PhD research focussed on models and languages for safe parallel and concurrent programming and on automatic detection of concurrency bugs using static analysis and software model checking. Currently, I am interested in tools and frameworks for programming education.
My main project was a concurrent object-oriented programming model called Parallel Roles. It is the basis for a Java-like language called Rolez, which can be used to write parallel programs with guaranteed deterministic results, even in the presence of arbitrary reference aliasing. The programmer specifies the role that an object plays for a task (e.g. the readonly role), and compiler and runtime system together ensure that only those object accesses are performed that are allowed by this role. An object may play different roles in the course of a program's execution, giving the programmer considerable flexibility in expressing a parallel program.
- Michael Faes and Thomas R. Gross, Concurrency-Aware Object-Oriented Programming with Roles, Proceedings of the ACM on Programming Languages, Vol. 2, OOPSLA, November 2018.
- Michael Faes and Thomas R. Gross, Efficient VM-Independent Runtime Checks for Parallel Programming, Proceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages (VMIL 2018), November 2018. DOI: 10.1145/3281287.3281293.
- Michael Faes and Thomas R. Gross, Formal Proof of Determinism for the Parallel Roles Model, Technical Report, April 2018.
- Michael Faes and Thomas R. Gross, Parallel Roles for Practical Deterministic Parallel Programming, Proceedings of the 30th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2017), October 2017.
- An Efficient Implementation of a Roles-Based Parallel Programming Language, 20th Workshop on Compilers for Parallel Computing (CPC 2018), April 2018.
- Bedeutung von Paralleler Programmierung, 37. Berner-Architekten-Treffen, Juni 2017.
Supervised Student Projects
- Nico Kurmann, Automatically Locating Mistakes in Programming Assignment Solutions. MSc Thesis, August 2019.
- Rahel Maag, Automatic Role Declaration Inference. BSc Thesis, August 2019.
- Roger Baumgartner, Automatic Sample Solution Selection for Introductory Programming Assignments. BSc Thesis, July 2019.
- Tim Linggi, WhiteSyn: A Fully Automatic Test Generation Tool for Performance Bugs. MSc Thesis, November 2018. Co-supervised with Luca Della Toffola.
- David Rohr, Task Parameter Inference for Inline Tasks in Rolez. BSc Thesis, August 2018.
- Alain Senn, Eager Noninterference in Rolez. BSc Thesis, March 2018.
- Michael Giger, Lightweight Parallel Roles. MSc Thesis, December 2017.
- Jonathan Meier, Check-and-replay for Debugging Concurrency Bugs in Java. BSc Thesis, October 2016.
- Robert Meier, Handling Read-write Locks in a Static Deadlock Analysis. Semester Project, June 2015.
- Arthur Kurath, Automatic Deadlock Analysis Evaluation. BSc Thesis, August 2014.