Valentin F.R. David Photography, Software engineering


Curriculum Vitae

The layout of this page has been optimized for printing. If you wish to print it, just click here.

Personal details

Hordagaten 20
N-5055 Bergen



Date of birth




+47 936 36 172


2005 to 2009

PhD at University of Bergen
Bergen, Norway

Thesis: Language Constructs for C++-like languages: tools and extensions. Print and digital versions available on demand.

2000 to 2005

École Pour l'Informatique et les Techniques Avancées (ÉPITA)
Paris, France
Specialization: Computational Science and Image

1997 to 2000

Lycée Alexis de Tocqueville
Cherbourg, France
Scientific baccalauréat (French A-levels)
Engineering science, mathematics, computer, experimental science


Since August 2011

System developer at Vizrt

Working on Viz Media Sequencer Engine. The project is a middleware used to make most of the company's software communicate with each others, with third party software and with third party devices in a distributed manner. My main focus in the project is to sanitize the I/O core, task management, thread synchronization, and also the build system.

January 2011 to June 2011

Researcher at UniResearch (University of Bergen)

I have been making an automated concept-based testing C++ library to demonstrate the power of concepts as specification, and concept-driven development.

January 2010 to December 2010

Researcher at the University of Bergen

The big part of my research was to explore the use of expression templates applied to generic program transformation, expressing concepts for Stratego/XT, Rascal and other similar project into a pure C++ library. The project coming with a generalized LL parser generator.

March 2009 to December 2009

Software engineer at UiB, Bergen, Norway on Magnolia project

March 2009 to May 2009

Teaching assistant at UiB, Bergen, Norway

Sep 2005 to Feb 2009

Research fellow at UiB, Bergen, Norway
Under supervision of Magne Haveraaen on SAGA-GEO: (Scientific with Algebraic and Generative Abstractions)

My task is to enhance and develop C++ meta programming tools, providing extra programming paradigms to the language to provide more abstraction power while keeping the program fast. The principal motivation was to provide tools to Sophus, a C++ numerical library for geophysical applications.

May 2007 to October 2007

Intern at Lawrance Livermore National Laboratory, Livermore, California, USA
Under supervision of Dan Quinlan on ROSE.

I developed a ROSE backend for Stratego/Spoofax. ROSE is a framework for C++ source analysis and transformation, whereas Stratego is a language for program transformation. This work also brought an interface to ROSE into Java with a full garbage collection.

Jan 2005 to Jun 2005

Intern at LIP6
Under supervision of Mikal Ziane on RNTL Lutin (Automatic refactoring)

Project Lutin provides techniques for automatic refactoring of object-oriented source code by setting only access restrictions. During this internship, I developed and tested a tool for identifying access violations in Java source code (a kind of generalized private/public/protected), using Stratego/XT and a hybrid modal logic evaluator in Prolog. I also developed some basic refactoring transformations that can fix the common access violations.

Oct 2003 to Feb 2004

Intern at ENST Paris
Under supervision of Jacques Sakarovitch and Sylvain Lombardy on Vaucanson (Generic finite state machine framework)

Automata are not always as simple as just having a letter on each edge. Labels can be generalized to be rational series over a monoid with multiplicity in a semiring. Serialized XML representations for automata were often not that generic. Vaucanson, thanks C++ templates, can handle generic automata. To be able serialize automata, it was necessary to define a generic XML format. The format and the input and output for Vaucanson were my work.

Feb 2003 to Dec 2004

Student at the LRDE (ÉPITA's Research and Development Laboratory)
Under supervision of Akim Demaille on Transformers (C/C++ Transformation framework)

I am still co-maintainer of the project. I have developed an attribute grammar system based on SDF and Stratego. I used it to disambiguate C99 and C++98, taking syntax definitions right from the appendices of the respective standards. My goal was to enhance the modularity of the C and C++ grammars, including even pretty-printing informations. This development have given a large set of tools for SDF to handle C and C++.



Anya Helene Bagge, Valentin David, and Magne Haveraaen. 2011. Testing with Axioms in C++ 2011: Testing with Axioms in C++ 2011. Journal of Object Technology. doi:10.5381/jot.2011.10.1.a10.

Alexandre Borghi, Valentin David and Akim Demaille C-Transformers: A Framework to Write C Program Transformations ACM Crossroads, Programming Languages, Spring 2006 - 12.3

In proceedings

Valentin David, Magne Haveraaen, Concepts as syntactic sugar SCAM 09

Anya Helene Bagge, Valentin David, Magne Haveraaen Axiom-based testing for C++ OOPSLA Companion 2008: 721-722

Valentin David Preparing for C++0x OOPSLA Companion 2008: 769-770

Anya Helene Bagge, Valentin David, Magne Haveraaen Testing with concepts and axioms in C++ OOPSLA Companion 2008: 773-774

Anya Helene Bagge, Valentin David, Magne Haveraaen, Karl Trygve Kalleberg Stayin' alert: moulding failure and exceptions to your needs GPCE 2006: 265-274

Valentin David, Akim Demaille, Olivier Gournet Attribute Grammars for Modular Disambiguation In the proceedings of IEEE 2nd International Conference on Intelligent Computer Communication and Processing Technical University of Cluj-Napoca, Romania 1 - 2 September, 2006


See section Experience.

Posted on Sat, 20 Jul 2013 18:52:29 +0200.