Data-driven synthesis for object-oriented frameworks
ACM SIGPLAN Notices, 2011•dl.acm.org
Software construction today often involves the use of large frameworks. The challenge in this
type of programming is that object-oriented frameworks tend to grow exceedingly intricate;
they spread functionality among numerous classes, and any use of the framework requires
knowledge of many interacting components. We present a system named MATCHMAKER
that from a simple query synthesizes code that interacts with the framework. The query
consists of names of two framework classes, and our system produces code enabling …
type of programming is that object-oriented frameworks tend to grow exceedingly intricate;
they spread functionality among numerous classes, and any use of the framework requires
knowledge of many interacting components. We present a system named MATCHMAKER
that from a simple query synthesizes code that interacts with the framework. The query
consists of names of two framework classes, and our system produces code enabling …
Software construction today often involves the use of large frameworks. The challenge in this type of programming is that object-oriented frameworks tend to grow exceedingly intricate; they spread functionality among numerous classes, and any use of the framework requires knowledge of many interacting components. We present a system named MATCHMAKER that from a simple query synthesizes code that interacts with the framework. The query consists of names of two framework classes, and our system produces code enabling interaction between them. MATCHMAKER relies on a database of dynamic program traces called DELIGHT that uses novel abstraction-based indexing techniques to answer queries about the evolution of heap connectivity in a matter of seconds.
The paper evaluates the performance and effectiveness of MATCHMAKER on a number of benchmarks from the Eclipse framework. The paper also presents the results of a user study that showed a 49% average productivity improvement from the use of our tool.
ACM Digital Library