According to the software engineering perspective, grammars can be viewed as "Specifications for defining languages or compilers". They form the basics of languages and several important kinds of software rely on grammars; e.g. compilers and parsers, debuggers, code processing tools, software modification tools, and software analysis tools. Testing a grammar to make sure that it is correct and defines the language for which it is developed is also very important. We implemented Purdom's algorithm to produce test data automatically for testing the MACS 1 grammar ( an LL(1) grammar) and the parser. Two different implementations of Purdom's algorithm were carried out in this project, one in Java and the other in C++; test strings and other analysis data automatically generated by these implementations are given in the paper.
A. M. Paracha, F. Franek