Defining and Applying Measures of Distance Between Specifications
IEEE Transactions on Software Engineering
Logic Program Synthesis in a Higher-Order Setting
CL '00 Proceedings of the First International Conference on Computational Logic
Component integration for web based applications
SEPADS'05 Proceedings of the 4th WSEAS International Conference on Software Engineering, Parallel & Distributed Systems
Embedded Systems Design
Hi-index | 0.00 |
Deductive retrieval and deductive synthesis are two conceptually closely related software development methods which apply theorem proving techniques to support the construction of correct programs. In this paper, we describe an integration of both methods which combines their complementary benefits and alleviates some of their drawbacks.The core of our integration is an algorithm which automatically extracts queries from the synthesis proof state and submits them to a specialized retrieval system. Retrieved components are then used to close open sub-goals in the proof. We use a higher-order framework for synthesis in which higher-order meta-variables are used to represent program fragments still to be synthesized. Hence, the introduction of a new meta-variable is an attempt to synthesize a new fragment and so highlights a possible reuse step. This observation allows us to invoke retrieval only after a \emph{substantial change} rather than at every proof step and prevents overloading the retrieval mechanism.Our integration raises the granularity level of synthesis by avoiding a substantial number of proof steps. It also provides a framework for adapting ``near-miss'' components in the case that an exact match cannot be retrieved.