Program Understanding and Re-engineering: Calculi and Applications




Sep 18 Paper Towards a Coordination Model for Interactive Systems by MarcoAntonioBarbosa, JoseCampos and LuisSoaresBarbosa has been accepted for FMIS'06 (Macau).

July 3 Paper Configurations of Web Services by MarcoAntonioBarbosa and LuisSoaresBarbosa has been accepted for FOCLASA'06 (Bonn, Germany).

July 3 Paper Strong Types for Relational Databases by Alexandra Silva and JoostVisser has been accepted for the Haskell Workshop 2006 (Portland, USA).

June 16 Paper Strongly Typed Rewriting For Coupled Software Transformation (by AlcinoCunha and JoostVisser) accepted by RULE 2006 (Seattle, USA).

May, 26 Paper Transposing Partial Coalgebras (by LuisSoaresBarbosa and JoseNunoOliveira) accepted for publication in TCS, Elsevier.

May, 11 Papers Type-safe two-level data transformation (by AlcinoCunha, JoseNunoOliveira and JoostVisser) and Pointfree factorization of operation refinement (by JoseNunoOliveira and Cesar Rodrigues) have been accepted by FM'06 (Canada).

May, 8 A paper entitled An Orchestrator for Dynamic Interconnection of Software Components, by MarcoAntonioBarbosa and LuisSoaresBarbosa, accepted at MTCoord'06 (Bologna).


May 18, 2005 A browsable version of the VDM-SL grammar is now online.
April 29, 2005 A technical report came out on the development of the VDM grammar in SDF.
February 1, 2005 Updated existing metrics and added structural and ambiguity-related metrics.
January 14, 2005 Updated Size metrics because of a bug in the SdfMetz tool.
January 10, 2005 Size metrics calculated with the SdfMetz tool have been add.
December 31, 2004 "Extreme Grammaring" presentation slides have been released.
December 31, 2004 Version 1.0 of VooDooMFront was released.
December 6, 2004 Three minor distributions of VooDooMFront have been released.

The VooDooMFront package provides a grammar for VDM, written in SDF, as well as support for parsing, tree building, and tree traversal.

The grammar is based on the ISO/IEC 13817-1:1996 reference document that describes the concrete and abstract syntax of VDM-SL.


Technical Report: Development of an Industrial Strength Grammar for VDM

The development of the VDM grammar in SDF is documented in the following technical report:

  • Tiago Alves and Joost Visser, Development of an Industrial Strength Grammar for VDM. Technical Report, DI-Research.PURe-05.04.29, Departamento de Informática, Universidade do Minho, April 2005. (pdf)

The report describes the grammar engineering methodology that was applied, the tools employed, and the various stages of evolution during grammar development. In particular, the report shows metrics data collected using SdfMetz for all 48 development versions of the grammar. A pretty-printed version of the grammar is included as appendix.

Browsable grammar

A browsable HTML rendering of the VDM-SL grammar in SDF is available from:

By clicking on non-terminal names one can easily navigate and explore the grammar structure.

Extreme Grammaring Presentation

Although parsing is a subset of a well studied area like compilers, grammars were always looked upon as "the ugly duckling". In this presentation I propose a novel methodology, baptized "Extreme Grammaring", for developing grammars using the SDF (Syntax Definition Formalism), inspired in Extreme Programming.

This methodology made possible the development of an industrial strength grammar for ISO VDM-SL, one of the most common languages used for formal specification.

"Extreme Grammaring" presentation slides (Presented on December, 21 in the PUReCafe)


Versionup Download Remarks
0.0.1 tgz Follows standard strictly. Contains ambiguities.
0.0.2 tgz Fully disambiguated. Some deviations from standard for disambiguation purposes.
0.0.3 tgz AST constructor names added. Some injections removed.
1.0 tgz Haskell front-end with parsing, AST outputting and pretty-printing support.

For detailed description of each release, see the remarks below as well as the README and ChangeLog files included in each distribution.

See VDMGrammarEvolution for metric values for all versions.

Upcoming releases

  • Version 2.0: This version will contain the front-end for Java, supporting parsing, tree building, and tree traversal, most probably following the JJForester approach.


  • VooDooM is a tool that converts VDM-SL data types to relational form, and exports them as SQL.


The main developer of VooDooMFront is:

r16 - 12 Feb 2007 - 19:32:08 - JoseBacelarAlmeida
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. Ideas, requests, problems? Send feedback.
Syndicate this site RSSATOM