Curriculum Vitae

Merijn
The Curriculum Vitae is also available in pdf.

Curriculum Vitae — Merijn de Jonge

July 28, 2005

(The most up-to-date version is available at http://www.cs.uu.nl/wiki/Merijn/CurriculumVitae)

Affiliation

Philips Research, Email:Merijn.de.Jonge+philips.com
Prof. Holstlaan 4, WDC-2,Web: http://www.cs.uu.nl/~mdejonge
NL-5656 AA Eindhoven Phone:(+31) 40 27 45189
The Netherlands Fax: (+31) 40 27 44639

Personal Data

Nationality: Dutch
Place of Birth:Son en Breugel
Date of Birth: March 8, 1972
Sex: Male

Education

1998-2003

Dr, Computer Science, University of Amsterdam. Dissertation: To reuse or to be reused: techniques for component composition and construction [1]. Promotor: prof.dr. P. Klint, Co-promotor: dr. A. van Deursen.

1995-1997

Drs, Computer Science, University of Amsterdam. Thesis: Reuse of ASF+SDF specifications by means of renaming [2]. Advisor: prof.dr. P. Klint.

1991-1995

Computer Science, Utrecht University, The Netherlands.

1990-1991

Psychology, Utrecht University, The Netherlands.

Employment

2005-

Scenior Scientist at Philips Research, Eindhoven, The Netherlands.

2004-2005

Postdoctoral Research Associate, Institute of Information and Computing Sciences, Utrecht University, The Netherlands.

2003-2004

Postdoctoral Research Associate, Department of Mathematics and Computer Science, Eindhoven Technical University, The Netherlands.

1999-2003

Onderzoeker in Opleiding (Research Assistant), Department SEN1 (Interactive Software Development and Renovation), CWI, The Netherlands.

1998-1999

Onderzoeker in Opleiding (Research Assistant), Programming Research Group, University of Amsterdam, The Netherlands.

1996-1997

Student assistent (Teaching Assistant), Department of Computer Science, University of Amsterdam, The Netherlands.

Research Interests

  • Collaborative software development
  • Component-based software development
  • Configuration management
  • Generative programming
  • Language-centered software engineering
  • Program transformation
  • Software construction
  • Software deployment
  • Software reuse
  • Software variability

Publications

All papers are available at http://www.cs.uu.nl/~mdejonge/publications/.

Journal Papers

[1]   M. de Jonge. Build-level components. IEEE Transactions on Software Engineering, page To appear, 2005.

[2]   E. Dolstra, G. Florijn, M. de Jonge, and E. Visser. Transparantie in variabiliteit: Heldere keuzes in een eenduidige configuratieomgeving. Informatie, 46(1):18-21, February 2004.

Theses

[1]   M. de Jonge. To Reuse or To Be Reused: Techniques for Component Composition and Construction. PhD? thesis, Faculty of Natural Sciences, Mathematics, and Computer Science, University of Amsterdam, January 2003. [pdf].

[2]   M. de Jonge. Reuse of ASF+SDF specifications by means of renaming. Master’s thesis, University of Amsterdam, Programming Research Group, 1997. [ps].

Conference Papers

[1]   E. Dolstra, M. de Jonge, and E. Visser. Nix: A safe and policy-free system for software deployment. In Proceedings of the 14th Systems Administration Conference (LISA 2004). USENIX Association, November 2004. To appear. [ps], [pdf].

[2]   M. de Jonge. Decoupling source trees into build-level components. In J. Bosch and C. Krueger, editors, Proceedings: Eighth International Conference on Software Reuse, volume 3107 of LNCS, pages 215-231. Springer-Verlag, July 2004. [ps], [pdf].

[3]   E. Dolstra, E. Visser, and M. de Jonge. Imposing a memory management discipline on software deployment. In Proceedings of the 26th International Conference on Software Engineering (ICSE 2004), pages 583-603. IEEE Computer Society Press, May 2004. [ps], [pdf].

[4]   M. de Jonge. Package-based software development. In Proceedings: 29th Euromicro Conference, pages 76-85. IEEE Computer Society Press, September 2003. [ps], [pdf].

[5]   M. de Jonge. Pretty-printing for software reengineering. In Proceedings: International Conference on Software Maintenance (ICSM 2002), pages 550-559. IEEE Computer Society Press, October 2002. [ps], [pdf].

[6]   A. van Deursen, M. de Jonge, and T. Kuipers. Feature-based product line instantiation using source-level packages. In G. J. Chastek, editor, Proceedings: Second Software Product Line Conference (SPLC2), number 2379 in LNCS, pages 217-234. Springer-Verlag, August 2002. [ps], [pdf].

[7]   M. de Jonge. Source tree composition. In Cristina Gacek, editor, Proceedings: Seventh International Conference on Software Reuse, volume 2319 of LNCS, pages 17-32. Springer-Verlag, April 2002. [ps], [pdf].

[8]   M. de Jonge and R. Monajemi. Cost-effective maintenance tools for proprietary languages. In Proceedings: International Conference on Software Maintenance (ICSM 2001), pages 240-249. IEEE Computer Society Press, November 2001. [ps] [pdf].

[9]   M. van den Brand, A. van Deursen, J. Heering, H. de Jong, M. de Jonge, T. Kuipers, P. Klint, L. Moonen, P. Olivier, J. Scheerder, J. Vinju, E. Visser, and J. Visser. The ASF+SDF Meta-Environment: a component-based language development environment. In R. Wilhelm, editor, Compiler Construction 2001 (CC 2001), volume 2027 of LNCS, pages 365-370. Springer-Verlag, April 2001. [ps] [pdf].

[10]   M. de Jonge, E. Visser, and J. Visser. XT: a bundle of program transformation tools (system description). In Mark van den Brand and Didier Parigot, editors, Proceedings of Language Descriptions, Tools and Applications (LDTA 2001), volume 44 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, April 2001. [ps] [pdf].

[11]   M. de Jonge and J. Visser. Grammars as contracts. In Greg Butler and Stan Jarzabek, editors, Generative and Component-Based Software Engineering, Second International Symposium, GCSE 2000, volume 2177 of Lecture Notes in Computer Science, pages 85-99, Erfurt, Germany, October 2001. Springer. [ps] [pdf].

Workshop Papers

[1]   M. de Jonge. Multi-level component composition. In Jan Bosch, editor, 2nd Groningen Workshop on Software Variability Modeling (SVM’04), number 2004-7-01. Reseach Institute of Computer Science and Mathematics, University of Groningen, December 2004.

[2]   M. de Jonge, J. Muskens, and M. Chaudron. Scenario-based prediction of run-time resource consumption in component-based software systems. In Proceedings: 6th ICSE Workshop on Component-Based Software Engineering: Automated Reasoning and Prediction, May 2003. [ps], [pdf].

[3]   E. Dolstra, G. Florijn, M. de Jonge, and E. Visser. Capturing timeline variability with transparent configuration environments. In Proceedings: ICSE Workshop on Software Variability Management, May 2003. [ps], [pdf].

[4]   M. de Jonge and J. Visser. XT capita selecta. In Eelco Visser, editor, Proceedings of the Second Stratego Users Day, number UU-CS-2001-54, February 2001. [ps], [pdf].

[5]   M. de Jonge. A pretty-printer for every occasion. In Ian Ferguson, Jonathan Gray, and Louise Scott, editors, Proceedings of the 2nd International Symposium on Constructing Software Engineering Tools (CoSET2000? ). University of Wollongong, Australia, June 2000. [ps] [pdf].

Technical Reports

[1]   M. de Jonge. The Linux kernel as flexible product-line architecture. Technical Report SEN-R0205, CWI, 2002. [ps] [pdf] .

[2]   M. de Jonge, E. Visser, and J. Visser. Collaborative software development. Technical Report SEN-R0113, CWI, 2001. [ps] [pdf] .

[3]   M. de Jonge. boxenv.sty: A LaTeX? style file for formatting BOX expressions. Technical Report SEN-R9911, CWI, 1999. [ps] [pdf] .

[4]   M. van den Brand and M. de Jonge. Pretty-printing within the ASF+SDF meta-environment: a generic approach. Technical Report SEN-R9904, CWI, 1999. [ps] [pdf] .

[5]   M. de Jonge, T. Kuipers, and J. Visser. HASDF: A Generalized LR-parser Generator for Haskell. Technical Report SEN-R9902, CWI, 1999. [ps] [pdf] .

Websites

  • The Online Grammar Base ( http://www.cs.uu.nl/~mdejonge/gb).
    Individual grammars contained in the Grammar Base (see below) are accessible via the Online Grammar Base. The website provides grammars in browsable form for reference purposes and it promotes reuse of language definitions by making them easy accessible.
  • The Online Package Base ( http://www.cs.uu.nl/~mdejonge/package-base).
    The online package base forms a central meeting point for software users and software developers. It provides a collection of reusable Free Software packages developed at different institutes that can be bundled to form self-contained source trees with integrated build and configuration processes.
  • StrategoXT TWiki ( http://www.program-transformation.org/xt).
    The home of the StrategoXT bundle of program transformation tools. StrategoXT is an open framework for program transformation (see below). The website contains documentation and usage instructions for the StrategoXT bundle. It has been set up by M. de Jonge, E. Visser, and J. Visser, but many people currently contribute to this website.

Grant Proposals

  • Co-authored “TraCE” proposal
    http://www.cs.uu.nl/groups/ST/Trace/JacquardProjectProposal

    The project’s goal is to study the modeling and realization of variability in modern software systems. The emphasis is on a more generic treatment of timing-issues for variation point binding, and the related effects and opportunities for optimization. The vehicle for the research is the development of a framework for transparent configuration environments which present a uniform interface to a variety of underlying configuration mechanisms, thus closing the current gap between variability at the conceptual and implementation levels.

Research Projects

Nix Deployment System

http://www.cs.uu.nl/groups/ST/Trace/Nix

Existing systems for software deployment are neither safe nor sufficiently flexible. Primary safety issues are the inability to enforce reliable component dependency specification, and a lack of support for multiple versions or variants of a component. This renders deployment operations such as upgrading or deleting components dangerous and unpredictable. A deployment system must also be flexible (i.e., policy-free) enough to support both centralized and local package management, and to allow a variety of mechanisms for transferring components. Nix is a deployment system that addresses these issues through a simple technique of using cryptographic hashes to compute unique paths for component instances.

Autobundle

http://www.program-transformation.org/Tools/AutoBundle

Autobundle is a tool that generates self-contained source trees from reusable source components. This process is called Source Tree Composition. It simplifies construction of composite systems by automatically merging source trees, build processes, and configuration processes of the constituent components.

KoalaTools

http://www.program-transformation.org/Tools/KoalaTools

A collection of tools related to the Koala component architecture developed by Philips Research. It consists of a re-implementation of the Koala compiler, several compiler back-ends, as well as visualization, analysis, and transformation tools.

Autobuild

http://www.program-transformation.org/Tools/AutoBuild

Autobuild is a tool that automates system building (i.e., configuration, compilation, installation, and distribution of software systems) on different platforms. It simultaneously performs platform-specific build actions on all available platforms. Build actions are defined in Buildfiles. Buildfiles make system building repeatable, because how a system should be built has to be defined only once. Autobuild makes system building manageable, because it removes the need to perform the actions to build a system on all configured platforms by hand.

DBS: Daily Build System

http://www.program-transformation.org/Tools/DailyBuildSystem

DBS implements an open framework for daily builds (i.e., regular performed builds to continuously verify the consistence of all parts of a software system). DBS is based on Autobuild which performs the build actions for software that is part of a daily build. DBS generates web pages with summaries of the build processes. DBS supports software construction on multiple architectures.

GPP: Generic Pretty-Printer

http://www.cs.uu.nl/groups/ST/Merijn/GenericPrettyPrinter

GPP is a generic pretty-printer that can format parse-trees as well as abstract syntax trees. It supports layout preserving and comment preserving pretty-printing. It supports generation of language-specific formattings that can be customized and be reused for other languages. Finally, GPP can produce output in plain text, LaTeX? , and HTML. Additional output formats can easily be added.

Grammar Base

http://www.program-transformation.org/gb

The Grammar Base is a collection of syntax definitions for programming languages and data formats. The goal of the grammar base is to share syntax definitions among programming language researchers, alleviating the task of making language processors for standard languages. The collection includes syntax definitions for ASF, ATerms, AT&T-SDL, BibTeX? , Box, C, CASL, Cobol, Dot, Elan, GraphXML? , Happy, Java, Risla, SDF, Stratego, Tiger, ToolBus? , XML, and Yacc. The grammar base has been set up by M. de Jonge, E. Visser and J. Visser and includes the work of researchers at CWI, UvA? , and Utrecht University.

StrategoXT: Transformation Tools

http://www.program-transformation.org/xt

StrategoXT is a bundle of program transformation tools. The purpose of the bundle is to combine several existing separately developed packages for program transformation into a self-contained distribution that is easy to install. StrategoXT was initiated by M. de Jonge, E. Visser, and J. Visser, but since then, many people contributed.

Industrial Experience

  • Philips Research, Eindhoven, The Netherlands. April 2003 - November 2003. Participated in a project geared towards developing a component architecture for the Philips Consumer Electronics (CE) department. Developed a tool-set for Koala component architecture based on StrategoXT technology. Participated in research on reuse and evolution metrics for component-based software systems.

Collaborations

  • Atos Origin, Veldhoven, The Netherlands (Randy Marques).
  • CERC, Utrecht, The Netherlands (Gert Florijn).
  • CWI, Amsterdam, The Netherlands (Paul Klint, Jurgen Vinju).
  • Free University (VU), Amsterdam, The Netherlands (R. Lämmel).
  • Delft University, Delft, The Netherlands (Arie van Deursen)
  • Lucent Technologies, Twente, The Netherlands (R. Monajemi, R. van Halen).
  • PROTHEO Group, INRIA/LORIA, Nancy, France (P.-E. Moreau).

  • Software Improvement Group, Amsterdam, The Netherlands (S. Klusener, T. Kuipers, Joost Visser).
  • Utrecht University, The Netherlands (M. Bravenboer, E. Dolstra, E. Visser).

Referee

  • First Jacquard Conference for the Software Engineering Community, 2005
  • 8th International Conference on Software Reuse (ICSR8), 2004
  • Journal of Science of Computer Programming (2004)
  • Journal of Science of Computer Programming (2003)

Workshop and Seminar Organization

Summer School Attendance

  • International Summer School On Applied Semantics. September 9-15, 2000, Caminha, Portugal.
  • 3rd International Summer School on Advanced Functional Programming. September 13-18, 1998, Braga, Portugal.
  • European Educational Forum School on Computational and Syntactic Methods. August 11-22, 1997, Mierlo, The Netherlands.

Teaching

Courses

  • Software Engineering (master’s course). Contributions include giving lectures about software reuse, component-based software engineering, and software product lines, coaching a project team, and reviewing student reports.

Supervising

  • Software Technology Colloquium (master’s course). Supervising students in preparing presentations and writing papers about research articles.
  • Supervising master thesis projects.

Invited Lectures

Lab

  • Programming Environments II. Organization of the laboratory work for a course on programming environments (programming language techniques / component-based software development / coordination architectures). 1997, 1999, 2000, University of Amsterdam, The Netherlands.
  • Programming Environments I. Organization of the laboratory work for a course about interactive programming environments (programming language techniques / compiler construction) using the ASF+SDF Meta-Environment. 1997, University of Amsterdam, The Netherlands.
  • Software Engineering & Specification Languages. Organization of the laboratory work for a course on software engineering using formal specification languages. 1997, University of Amsterdam, The Netherlands.