Carl Friedrich Bolz

I am researcher in Computer Science with Laurence Tratt as a member of the Software Development Team at King's College London since 2013. I live in Hamburg. Before, I was at Hasso-Plattner-Institute Potsdam with Robert Hirschfeld and Heinrich-Heine-Universität Düsseldorf with Michael Leuschel.

My main research interests are techniques for the efficient implementation of dynamic programming languages. I am interested in tracing JITs, optimizations, partial evaluation, particularly at runtime. I am a member of the Python Software Foundation.

Contact

Projects

I am mainly involved in the PyPy project, as well as projects around it:

  • Core PyPy: PyPy is a project that tries to make implementing dynamic languages a lot easier by providing a toolchain that helps with various things such as garbage collection, a dynamic compiler and targeting more than one platform (like C, the JVM and the CLR). The long-term goal of PyPy is to realize the vision of really efficient dynamic programming languages without too much implementation effort on the side of the language implementors.

    I work on many aspects of core PyPy development, among them the Python interpreter, the translation toolchain (including optimizations, garbage collectors) and the meta-tracing JIT. (mercurial)

  • Pyrolog: Pyrolog is a Prolog implementation in RPython that I wrote for my Bachelor's thesis. The execution engine and many ISO builtins are implemented. David Schneider and I improved on it in 2010 so that it works with PyPy's JIT generator. This makes it a lot faster (but not quite as fast as good C-based VMs). (mercurial)

  • The SPy VM: The SPy VM is an implementation of a Smalltalk VM in RPython that tries to be compatible with Squeak images. The VM itself is nearly done; many primitives are missing.

    I was at the original SPy sprint in 2007 and have been working on SPy on-and-off since then. (mercurial)

  • JitPL: JitPL is a dynamic (i.e. just-in-time) partial evaluator for Prolog that I wrote for my Master's thesis. It has no relation with PyPy on the code level. However, it served to prototype some ideas for the PyPy JIT generator and continues to do so in its newer incarnations. (svn)

Publications

A list of my publications (they can also be found on my Google Scholar page):

2015

Pycket: A Tracing JIT For a Functional Language Spenser Baumann, Carl Friedrich Bolz, Robert Hirschfeld, Vasily Kirilichev, Tobias Pape, Jeremy Siek, Sam Tobin-Hochstadt Accepted at ICFP 2015, June 2015
Adaptive Just-in-time Value Class Optimization Carl Friedrich Bolz, Robert Hirschfeld, Tobias Pape To appear, Object Oriented Programming Languages and Systems (OOPS), ACM SAC, April 2015
Approaches to Interpreter Composition Edd Barrett, Carl Friedrich Bolz, Laurence Tratt Accepted for publication in Computer Languages, Systems, and Structures, March 2015
The impact of meta-tracing on VM design and implementation Carl Friedrich Bolz, Laurence Tratt Science of Computer Programming, 98(3):408-421, February 2015

2014

Meta-tracing makes a fast Racket Carl Friedrich Bolz, Tobias Pape, Jeremy Siek, Sam Tobin-Hochstadt Dynamic Languages and Applications (Dyla), June 2014

2013

Storage strategies for collections in dynamically typed languages Carl Friedrich Bolz, Lukas Diekmann, Laurence Tratt Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), pages 167-182, October 2013
Unipycation: a case study in cross-language tracing Edd Barrett, Carl Friedrich Bolz, Laurence Tratt Virtual Machines and Intermediate Languages (VMIL), October 2013

2012

Loop-Aware Optimizations in PyPy’s Tracing JIT Håkan Ardö, Carl Friedrich Bolz, Maciej Fijałkowski Proc. Dynamic Languages Symosium (DLS), October 2012
The Efficient Handling of Guards in the Design of RPython’s Tracing JIT David Schneider, Carl Friedrich Bolz Proc. Workshop on Virtual Machines and Intermediate Languages (VMIL), October 2012
The Functional Programming Language R and the Paradigm of Dynamic Scientific Programming Baltasar Trancón y Widemann, Carl Friedrich Bolz, Clemens Grelck Trends in Functional Programming, June 2012

2011

Runtime Feedback in a Meta-Tracing JIT for Efficient Dynamic Languages Carl Friedrich Bolz, Antonio Cuni, Maciej Fijałkowski, Michael Leuschel, Samuele Pedroni, Armin Rigo Proc. Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS), July 2011
Allocation Removal by Partial Evaluation in a Tracing JIT Carl Friedrich Bolz, Antonio Cuni, Maciej Fijałkowski, Michael Leuschel, Samuele Pedroni, Armin Rigo Proc. Partial Evaluation and Program Manipulation (PEPM), January 2011

2010

Towards a Jitting VM for Prolog Execution Carl Friedrich Bolz, Michael Leuschel, David Schneider Proc. Principle and Practice of Declarative Programming (PPDP), July 2010
Jitting Prolog for Fun and Profit David Schneider, Carl Friedrich Bolz, Michael Leuschel Proc. Dynamic Languages and Applications (DYLA), June 2010

2009

Towards Just-in-time Partial Evaluation of Prolog Carl Friedrich Bolz, Michael Leuschel, Armin Rigo Proc. Logic-Based Program Synthesis and Transformation (LOPSTR), September 2009
Tracing the Meta-Level: PyPy's Tracing JIT Compiler Carl Friedrich Bolz, Antonio Cuni, Maciej Fijałkowski, Armin Rigo Proc. Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS), July 2009

2008

Back to the Future in One Week — Implementing a Smalltalk VM in PyPy Carl Friedrich Bolz, Adrian Lienhard, Adrian Lienhard, Nicholas Matsakis, Oscar Nierstrasz, Lukas Diekmann, Armin Rigo, Toon Verwaest Self-Sustaining Systems, May 2008

2007

How to not write a Virtual Machine Carl Friedrich Bolz, Armin Rigo Proc. Dynamic Languages and Applications (DYLA), July 2007

Academic Service

Teaching

In the winter semester 2008/2009 I designed and taught "Dynamic Programming Languages" as part of the Master's in Computer Science together with Armin Rigo. I taught the course a second time in the summer semester 2010, and again in winter semester 2011.

Various

I play the bassoon and sing in a choir.

I sometimes post articles at the PyPy status blog.

Carl Friedrich Bolz

Twitter:

Docutils System Messages

System Message: ERROR/3 (/home/cfbolz/code/hguserdir/website/index.txt, line 272); backlink

Unknown target name: "icooolps 2015".