Rob van der Leek
Implementation Strategies For Island Grammars
The Software Improvement Group
(SIG) offers software assessments that provides companies insight into their legacy code bases. The results of these assessments range from general software quality reports to specific facts needed for a migration project.
Legacy software systems are often problematic to analyze; sources are incomplete, the system was implemented in some obscure programming language dialect, a mixture of languages was used, and even custom developed languages are encountered.
Existing language parsers would require extensive modifications to be used for analyses in these projects. The situation is even more complicated for language dialects which have no clear grammar definition or in cases where there is no parser implementation available. Modifying existing parsers or creating new ones for these systems is unfeasible in the limited time available for assessments.
Most analyses however, do not require a complete parser implementation. For these cases a partial parser, one that only finds the constructs of interests for a specific analysis, is sufficient. Island parsers are such partial parsers created from minimal grammars (island grammars).
Previous research proved the usefulness of island grammars for source fact extraction. Unfortunately, performance and implementation problems currently limits their use for assessments. My project if focused on finding strategies to overcome these problems.
So, what is an Island Grammar?
An Island Grammar (IG) is a partial grammar that contains precise productions for the constructs of interest and liberal productions for other parts of the input. Island Grammars enables the SIG to do assessments fast but in a formal and structured manner on exotic and obscure programming languages.