Skip to Main Content
This paper describes a new application of a non-traditional parallel parsing technique for a Uniform Petal Language (UPL) program. Our bidirectional parser takes as input a UPL program, that is, a text representation of a UML specification. The benefits of parsing a UPL program are checking the correctness of the UML specification and obtaining the productions that lead to that UPL program. Consequently, the UPL program can be generated from the associated set of productions. The set of productions associated to a correct UPL program is a very condensed way to store it. Keeping a specification as minimum as possible, but expressive, is an important concept of reverse engineering. We have implemented a bidirectional parser for context free languages, including UPL, in Java programming language, called Parsing Uniform Petal Language (PUPAL), and compare it with CUP, a state-of-the-art parser for Java designed by Hudson, Flannery, and Ananian. The experimental results considered several UPL programs and concluded that PUPAL performs better than CUP.