Forschungsthemen
[GB] Development of a User Interface for the Graphical Specification of Complex Rewrite Rules for the Reference Attribute Grammar Controlled Rewriting Library RACR
Attribute grammars and graph rewriting are well-known compiler construction concepts for the development of semantic analysers, code generators and optimizers. Typically, both are independently applied in different, but consecutive compilation phases. To investigate advantages of a more tightly integration of attribute grammars and rewriting, a new technique called attribute grammar controlled rewriting and its reference implementation RACR1 has been developed at the software technology chair. RACR is a Scheme library providing a set of functions that can be used to specify abstract syntax tree schemes and their attribution and construct respective trees, query their attributes and node information and annotate and rewrite them. Thereby, rewrites are performed by the application of primitive rewrite functions. Graphical rewrite rules consisting of left- and right-hand sides, like in many common rewrite systems, can only be simulated by sequences of primitive rewrite function applications. The development of a user interface for the graphical specification of complex rewrite rules is the objective of this thesis. The developed solution has to satisfy and implement the following requirements and features:
- Feature: User interface for the graphical specification of left-hands consisting of abstract syntax tree fragments, reference attributes, node bindings and rewrite conditions
- Feature: Validity checks for specified left-hands to warn developers if abstract syntax tree fragments are not correctly typed or are impossible w.r.t. a given RACR specification
- Feature: Given a valid left-hand S, generation of RACR-based Scheme code which implements a matching algorithm for S
- Feature: Automatic graphical formatting of specified rules
- Requirement: The formatted visualization is optimized for human readability
- Requirement: The developed solution has to apply RACR to compute formatting information, validity checks and generated code
- Feature: Specified rules can be stored and loaded from hard drive
- Requirement: The solution depends only on RACR, R6RS Scheme and Racket2
- Requirement: The solution is tested; proper test cases are developed
Betreuer: Christoff Bürger