The Grammar Deployment Kit

Grammar deployment is the process of turning a given grammar specification into a working parser. The Grammar Deployment Kit (for short, GDK) provides tool support in this process based on firm grammar engineering methods. We are mainly interested in the deployment of grammars for software renovation tools, that is, tools for software re- and reverse engineering. GDK is geared towards the Cobol family of languages. We assume that grammar deployment starts from an initial grammar specification which is maybe still ambiguous or even incomplete. In practice, grammar deployment binds unaffordable human resources because of the unavailability of suitable grammar specifications, the diversity of parsing technology as well as the limitations of the technology, integration problems regarding the development of software renovation functionality, and the lack of tools and adherence to firm methods for grammar engineering. GDK helps to largely automate grammar deployment because tool support for grammar adaptation and parser generation is provided. We support different parsing technologies, among them btyacc (that is, yacc with backtracking) which is a mainstream technology in the renovation context. GDK is free software.


Installing GDK

Download gdk-1.4.4.tar.gz , then unpack, build and install it with:

gzip -d gdk-1.4.4.tar.gz
tar -xf gdk-1.4.4.tar
cd gdk-1.4.4
./configure --prefix=$HOME/pkgs/gdk-1.4.4
make check
make install

The main application of GDK is a VS COBOL II parser. Try it out to see how GDK is used in practice for various reengineering frameworks. There is now also a smaller, more in depth, demo for the Tiger language included in the GDK distribution itself. This contains the step by step recipe (see file gdk/demo/README) we use ourselves to deploy a grammar for our own reengineering framework.


GDK Links

Other Links


Although I know that it is possible to set up mailing lists and forums and what not, I would prefer to be contacted directly via email until the project gets enough active users (lets say 42) to make mailing lists and such useful. My email: Logo