ABSTRACT
Future software development will rely on product synthesis, i.e., the synthesis of code and non-code artifacts for a target component or application. Prior work on feature-based product synthesis can be understood and generalized using elementary ideas from category theory. Doing so reveals (a) practical and previously unrecognized properties that product synthesis tools must satisfy, and (b) non-obvious generalizations of current techniques that will guide future research efforts in automated product development.
- D. Batory and S. O'Malley. "The Design and Implementation of Hierarchical Software Systems with Reusable Components". ACM TOSEM, October 1992. Google Scholar
Digital Library
- D. Batory, C. Johnson, B. MacDonald, and D. von Heeder, "Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study", ACM TOSEM, Vol 11#2, April 2002, 191--214. Google Scholar
Digital Library
- D. Batory, J.N. Sarvela, and A. Rauschmayer. "Scaling Step-Wise Refinement", IEEE TSE, June 2004. Google Scholar
Digital Library
- D. Batory, "From Implementation to Theory in Product Synthesis", Dept. Computer Sciences, University of Texas at Austin, TR-06-53, October 2006.Google Scholar
- T. Biggerstaff and A. Perlis, Software Reusability Volume II: Applications and Experiences, Addison-Wesley, 1990. Google Scholar
- G. Bracha and W. Cook. "Mixin-Based Inheritance". OOPSLA and ECOOP 1990. Google Scholar
Digital Library
- E.F. Codd. "A Relational Model of Data for Large Shared Data Banks", CACM 13 (6), 1970. Google Scholar
Digital Library
- H. Ehrig and B. Mahr, Fundamentals of Algebraic Specification 2: Module Specifications and Constraints, Springer-Verlag, 1990. Google Scholar
Digital Library
- E. Ernst, "Higher Order Hierarchies", ECOOP 2003.Google Scholar
- J. Goguen. "Principles of Parameterized Programming" in {5}.Google Scholar
- J. Goguen. "A Categorical Manifesto". Mathematical Structures in Computer Science, 1991.Google Scholar
- J. Gray, "What Next? A Dozen Information-Technology Research Goals", Microsoft Research MSR-TR-99-50, 1999.Google Scholar
- K. Kang, et al., "Feature-Oriented Domain Analysis (FODA) Feasibility Study", Tech Report CMU/SEI-90-TR-21.Google Scholar
- K.K. Lau. "Top-down Synthesis of Sorting Algorithms", The Computer Journal, 1992.Google Scholar
- O.L. Madsen and B. Müller-Pedersen, "Virtual Classes: A Powerful Mechanism in Object-Oriented Programming", OOPSLA 1989. Google Scholar
Digital Library
- M. Odersky, et al. "An Overview of the Scala Programming Language". September 2004, scala.epfl.chGoogle Scholar
- D. Pavlovic and D.R. Smith. "Software Development by Refinement", UNU/IIST 10th Anniversary Colloquium, Formal Methods at the Crossroads: From Panaea to Foundational Support, Springer-Verlag LNCS 2757, 2003.Google Scholar
- T. Reenskaug, et al. "OORASS: Seamless support for the creation and maintenance of object-oriented systems". Journal of Object-Oriented Programming, October 1992.Google Scholar
- P. Selinger, M.M. Astrahan, D.D. Chamberlin, R.A. Lorie, and T.G. Price. "Access Path Selection in a Relational Database System", ACM SIGMOD 1979. Google Scholar
Digital Library
Index Terms
From implementation to theory in product synthesis
Recommendations
From implementation to theory in product synthesis
Proceedings of the 2007 POPL ConferenceFuture software development will rely on product synthesis, i.e., the synthesis of code and non-code artifacts for a target component or application. Prior work on feature-based product synthesis can be understood and generalized using elementary ideas ...
Can reactive synthesis and syntax-guided synthesis be friends?
PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and ImplementationWhile reactive synthesis and syntax-guided synthesis (SyGuS) have seen enormous progress in recent years, combining the two approaches has remained a challenge. In this work, we present the synthesis of reactive programs from Temporal Stream Logic ...
Optimizing synthesis with metasketches
POPL '16Many advanced programming tools---for both end-users and expert developers---rely on program synthesis to automatically generate implementations from high-level specifications. These tools often need to employ tricky, custom-built synthesis algorithms ...






Comments