Language Support for Exploiting Software Structure Specifications
Kumar, Bharath M
MetadataShow full item record
Precise specification of the architecture and design of software is a good practice. Such specifications contain a lot of information about the software that can potentially be exploited by tools, to reduce redundancy in software writing by automating routine tasks, as well as giving valuable feedback on the software. We first broadly classify such tools based on their application, and look at some of the issues involved in writing them. Most of these tools are built using conventional programming languages that do not provide primitives that are routinely required by such tools. We identify some patterns that are seen while writing such tools and abstract them out into a language specially designed for the purpose. Our effort is a language called LEADS, where we attempt to make writing such tools a lot easier, modular, organized and portable. LEADS is based on the Pattern-Action approach, where one specifies the pattern of information of interest and the actions to be taken when it is found. The patterns are specified using a custom declarative language that is enriched with special primitives for routinely occurring constructs. LEADS also decouples itself from the specification environments and formats thereby ensuring wide applicability. This enables LEADS scripts to be ported across design environments with minimal effort.