Dr. Clément Béra

Dr. Clément Béra

I am interested in runtime environments for object-oriented languages, from Memory management optimisations to efficient Just-In-Time compilers through fast interpreters and Foreign Function Interfaces. I am currently working as a Virtual Machine Architect for the Pharo consortium. Implementation-wise, my focus is therefore on Pharo and the Cog VM - one of those "pure" object language where "everything is an object" (some define Pharo as a Smalltalk, I like to say it's a Smalltalk-like / ruby-like language).

I am mainly known for the implementation of Sista, a Just-in-Time compiler architecture for the Pharo/Cog VM. Sista performs adaptive optimizations. The Sista VM starts the program non-optimized to collect runtime information about the program behavior and detect frequently used portions of code. It then generates optimized code, based on the collected runtime information. The optimizations are speculative, assuming that if the program has always behaved a certain way, it will keep behaving that way. To ensure that the execution remains correct, Sista inserts deoptimization guards, which are able to deoptimize the execution stack and resume execution with non optimized code if the behavior of the program changes. Sista may then re-optimize the code differently based on the new behavior. Research-wise, the main interest of Sista is the ability to persist partially of the optimized code across multiple start-ups.

Aside from Sista, I've done a lot of work related to Memory Management (Efficient GC, support for forwarding objects), I've looked into symbolic execution to validate Just-In-Time compiler optimization & deoptimization process and all sorts of interesting things like that. I'm also quite keen on video game implementation - unfortunately, I've been able to work with 2D engines only, see the projects page.

Don't hesitate to have a look at my Blog, where I talk about all sorts of things related to Language implementation & Virtual Machine design, usually through the example of Pharo and the Cog VM.

Contact clement.bera(at)inria.fr