Abstract
A framework for composition synthesis is provided in which metalanguage combinators are supported and the execution of synthesized programs can be staged into composition-time code generation (stage 1) and run-time execution (stage 2). By extending composition synthesis to encompass both object language (L1) and metalanguage (L2) combinators, composition synthesis becomes a powerful and flexible framework for the generation of L1-program compositions. A system of modal intersection types is introduced into a combinatory composition language to control the distinction between L1- and L2-combinators at the type level, thereby exposing the language distinction to composition synthesis. We provide a theory of correctness of the framework which ensures that generated compositions of component implementations are well typed and that their execution can be staged such that all metalanguage combinators can be computed away completely at stage 1, leaving only well typed L1-code for execution at stage 2. Our framework has been implemented, and we report on experiments.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Download to read the full chapter text
Chapter PDF
References
Rehof, J., Urzyczyn, P.: Finite Combinatory Logic with Intersection Types. In: Ong, L. (ed.) TLCA 2011. LNCS, vol. 6690, pp. 169–183. Springer, Heidelberg (2011)
Düdder, B., Martens, M., Rehof, J., Urzyczyn, P.: Bounded Combinatory Logic. In: Proceedings of CSL 2012, Schloss Dagstuhl. LIPIcs, vol. 16, pp. 243–258 (2012)
Düdder, B., Garbe, O., Martens, M., Rehof, J., Urzyczyn, P.: Using Inhabitation in Bounded Combinatory Logic with Intersection Types for GUI Synthesis. In: Proceedings of ITRS 2012 (2012)
Rehof, J.: Towards Combinatory Logic Synthesis. In: 1st International Workshop on Behavioural Types, BEAT 2013. ACM (January 22, 2013)
Düdder, B., Martens, M., Rehof, J.: Intersection Type Matching with Subtyping. In: Hasegawa, M. (ed.) TLCA 2013. LNCS, vol. 7941, pp. 125–139. Springer, Heidelberg (2013)
Hindley, J.R., Seldin, J.P.: Lambda-calculus and Combinators, an Introduction. Cambridge University Press (2008)
Barendregt, H., Coppo, M., Dezani-Ciancaglini, M.: A Filter Lambda Model and the Completeness of Type Assignment. Journal of Symbolic Logic 48(4), 931–940 (1983)
Haack, C., Howard, B., Stoughton, A., Wells, J.B.: Fully Automatic Adaptation of Software Components Based on Semantic Specifications. In: Kirchner, H., Ringeissen, C. (eds.) AMAST 2002. LNCS, vol. 2422, pp. 83–98. Springer, Heidelberg (2002)
Wells, J.B., Yakobowski, B.: Graph-Based Proof Counting and Enumeration with Applications for Program Fragment Synthesis. In: Etalle, S. (ed.) LOPSTR 2004. LNCS, vol. 3573, pp. 262–277. Springer, Heidelberg (2005)
Davies, R., Pfenning, F.: A Modal Analysis of Staged Computation. Journal of the ACM 48(3), 555–604 (2001)
Dezani-Ciancaglini, M., Hindley, R.: Intersection Types for Combinatory Logic. Theoretical Computer Science 100(2), 303–324 (1992)
Miller, D., Nadathur, G., Pfenning, F., Scedrov, A.: Uniform Proofs as a Foundation for Logic Programming. Ann. Pure Appl. Logic 51(1-2), 125–157 (1991)
Düdder, B., Martens, M., Rehof, J.: A Theory of Staged Composition Synthesis (Extended Version). Technical Report 843, Faculty of Computer Science, TU Dortmund (2013), http://www-seal.cs.tu-dortmund.de/seal/downloads/research/cls/TR843-SCS.pdf
Chandra, A.K., Kozen, D.C., Stockmeyer, L.J.: Alternation. Journal of the ACM 28(1), 114–133 (1981)
Lustig, Y., Vardi, M.Y.: Synthesis from Component Libraries. In: de Alfaro, L. (ed.) FOSSACS 2009. LNCS, vol. 5504, pp. 395–409. Springer, Heidelberg (2009)
Gulwani, S., Jha, S., Tiwari, A., Venkatesan, R.: Synthesis of Loop-free Programs. In: Proceedings of PLDI 2011, pp. 62–73. ACM (2011)
Freeman, T., Pfenning, F.: Refinement Types for ML. In: Proceedings of PLDI 1991, pp. 268–277. ACM (1991)
Davies, R., Pfenning, F.: Intersection Types and Computational Effects. In: ICFP, pp. 198–208 (2000)
Dezani-Ciancaglini, M., Giannini, P., Della Rocca, S.R.: Intersection, Universally Quantified, and Reference Types. In: Grädel, E., Kahle, R. (eds.) CSL 2009. LNCS, vol. 5771, pp. 209–224. Springer, Heidelberg (2009)
Dezani-Ciangaglini, M., Ronchi Della Rocca, S.: Intersection and Reference Types. Essays dedicated to Henk Barendregt on the occasion of his 60’th birthday, pp. 77–86 (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Düdder, B., Martens, M., Rehof, J. (2014). Staged Composition Synthesis. In: Shao, Z. (eds) Programming Languages and Systems. ESOP 2014. Lecture Notes in Computer Science, vol 8410. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-54833-8_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-54833-8_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-54832-1
Online ISBN: 978-3-642-54833-8
eBook Packages: Computer ScienceComputer Science (R0)