We present Combinatory Logic Synthesizer (CL)S, a type-based tool to automatically compose larger systems from repositories of components. We overview its underlying theory, combinatory logic with intersection types, and exemplify its application to synthesis. We describe features and architecture of the tool and our plans for its ongoing and future development. Finally, we present some use cases in ongoing work, especially in the context of synthesis for Object Oriented Software.


Intersection Type Semantic Type Semantic Concept Combinatory Logic Enterprise Resource Planning System 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Rehof, J.: Towards Combinatory Logic Synthesis. In: 1st International Workshop on Behavioural Types, BEAT 2013. ACM (2013)Google Scholar
  2. 2.
    Barendregt, H., Coppo, M., Dezani-Ciancaglini, M.: A Filter Lambda Model and the Completeness of Type Assignment. Journal of Symbolic Logic 48, 931–940 (1983)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Rehof, J., Urzyczyn, P.: Finite Combinatory Logic with Intersection Types. In: Ong, L. (ed.) Typed Lambda Calculi and Applications. LNCS, vol. 6690, pp. 169–183. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  4. 4.
    Düdder, B., Martens, M., Rehof, J., Urzyczyn, P.: Bounded Combinatory Logic. In: Proceedings of CSL 2012. LIPIcs, vol. 16, pp. 243–258. Schloss Dagstuhl (2012)Google Scholar
  5. 5.
    Düdder, B., Martens, M., Rehof, J.: Staged Composition Synthesis. In: Shao, Z. (ed.) ESOP 2014 (ETAPS). LNCS, vol. 8410, pp. 67–86. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  6. 6.
    Manna, Z., Waldinger, R.: Fundamentals Of Deductive Program Synthesis. IEEE Transactions on Software Engineering 18, 674–704 (1992)CrossRefGoogle Scholar
  7. 7.
    Bodik, R., Jobstmann, B.: Algorithmic Program Synthesis: Introduction. International Journal on Software Tools for Technology Transfer 15, 397–411 (2013)CrossRefGoogle Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    Hindley, J.R., Seldin, J.P.: Lambda-calculus and Combinators, an Introduction. Cambridge University Press (2008)Google Scholar
  10. 10.
    Steffen, B., Margaria, T., von der Beeck, M.: Automatic Synthesis of Linear Process Models from Temporal Constraints: An Incremental Approach. In: In ACM/SIGPLAN Int. Workshop on Automated Analysis of Software, AAS 1997 (1997)Google Scholar
  11. 11.
    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)CrossRefGoogle Scholar
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    Freeman, T., Pfenning, F.: Refinement Types for ML. In: Proceedings of PLDI 1991, pp. 268–277. ACM (1991)Google Scholar
  14. 14.
    Linial, L., Post, E.L.: Recursive Unsolvability of the Deducibility, Tarski’s Completeness and Independence of Axioms Problems of Propositional Calculus. Bulletin of the American Mathematical Society 50 (1949)Google Scholar
  15. 15.
    Davies, R., Pfenning, F.: A Modal Analysis of Staged Computation. Journal of the ACM 48, 555–604 (2001)MathSciNetCrossRefGoogle Scholar
  16. 16.
    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)CrossRefGoogle Scholar
  17. 17.
    Vasileva, A.: Synthese von Orchestrationscode für Cloud-basierte Dienste. Diploma thesis, Technical University of Dortmund, Department of Computer Science (2013)Google Scholar
  18. 18.
    Wolf, P.: Entwicklung einer Adapters mit VI Scripting (LabVIEW) zur Synthese von LEGO® NXT-VIs aus einem Repository. Bachelor’s thesis, Technical University of Dortmund, Department of Computer Science (2013)Google Scholar
  19. 19.
    Plate, S.: Automatische Generierung einer Konfiguration für virtuelle Maschinen unter Zuhilfenahme eines Inhabitationsalgorithmus. Bachelor’s thesis, Technical University of Dortmund, Department of Computer Science (2013)Google Scholar
  20. 20.
    Bessai, J.: Synthesizing Dependency Injection Configurations for the Spring Framework. Master’s thesis, TU Dortmund, Department of Computer Science (2013)Google Scholar
  21. 21.
    Bracha, G.: The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, University of Utah, Salt Lake City, UT, USA (1992)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Jan Bessai
    • 1
  • Andrej Dudenhefner
    • 1
  • Boris Düdder
    • 1
  • Moritz Martens
    • 1
  • Jakob Rehof
    • 1
  1. 1.Department of Computer ScienceTechnical University of DortmundDortmundGermany

Personalised recommendations