Title: Advanced Metaprogramming

Speaker: Vadim Zaytsev (CWI, Amsterdam, NL)

Host: Ralf Lämmel, Inst. for Software Technology and CS

Date/Time: 17 July 2012 (Tuesday), 14pm (ct)

Room: M001


Once software systems reach certain stage in their evolution, they
inevitably become very complex. There are methods to deal with this
complexity in maintenance, development and renovation, and one of
those methods is metaprogramming - that is, programming algorithms
that manipulate other programs. Such metaprograms can be used to
analyse code, transform it, compose reports and generate more code in
another language. This lecture concerns a metaprogramming language
called Rascal, see

In a metaprogramming environment, rapid tool development can be
facilitated by using domain-specific languages. Unlike general purpose
languages like Java or Haskell that try to provide means to solve any
problem that the programmers might possibly face, domain-specific
languages sacrifice generality for effectiveness and provide a perfect
set of tools for solving a range of tasks from one problem domain:
querying databases, typesetting, describing dynamic websites,
specifying file formats, etc. In the second part of the lecture, we
will see three one-slide-long examples of DSLs: for drawing maps from
bus line descriptions, for visualising a Turing machine and for
transforming grammars.


Vadim Zaytsev graduated as a BSc in mathematics from the Rostov State
University, Russia, in 2002. In 2003, he received a Master’s degree
from the same university in applied mathematics, and in 2004 a second
MSc degree in telematics from University of Twente, The Netherlands.
From 2004 to 2008, he worked at the Free University of Amsterdam, The
Netherlands, as a PhD candidate, in a project about
language-parametric program restructuring, which he finished in 2010
after working two more years as a part of the Software Languages Team
in University of Koblenz-Landau. Nowadays Vadim Zaytsev is a
postdoctoral research fellow at the Centre of Mathematics and Computer
Science in Amsterdam, The Netherlands, and works on foundations of the
grammar laboratory.