Free Composition Instead of Language Dictatorship

Lodewijk Bergmans, Steven te Brinke, Christoph Bockisch, Mehmet Akşit


Historically, programming languages have been—benevolent—dictators: reducing all possible semantics to specific ones offered by a few built-in language constructs. Over the years, some programming languages have freed the programmers from the restrictions to use only built-in libraries, built-in data types, and builtin type-checking rules. Even though—arguably—such freedom could lead to anarchy, or people shooting themselves in the foot, the contrary tends to be the case: a language that does not allow for extensibility is depriving software engineers of the ability to construct proper abstractions and to structure software in the most optimal way. Therefore the software becomes less structured and maintainable than would be possible if the software engineer could express the behavior of the program with the most appropriate abstractions. The idea proposed by this paper is to move composition from built-in language constructs to programmable, first-class abstractions in a language. We discuss several prototypes of the Co-op language, which show that it is possible, with a relatively simple model, to express a wide range of compositions as first-class concepts.


  1. Bergmans, L. M. J., Havinga, W. K., and Aks¸it, M. (2011). First-class compositions-defining and composing object and aspect compositions with first-class operators. Transactions on Aspect-Oriented Software Development.
  2. Brichau, J., Haupt, M., Leidenfrost, N., Rashid, A., Bergmans, L., et al. (2005). Report describing survey of aspect languages and models. Technical Report AOSD-Europe Deliverable D12, AOSD-EuropeVUB-01, Vrije Universiteit Brussel.
  3. Te Brinke, S., Bergmans, L. M. J., and Bockisch, C. M. (2011a). The keyword revolution: Promoting language constructs for data access to first class citizens. In Proc. 1st Int. Workshop on Free Composition, FREECO 7811, New York, NY, USA. ACM.
  4. Te Brinke, S., Bockisch, C. M., and Bergmans, L. M. J. (2011b). Reuse of continuation-based control-flow abstractions. In Proc. 2nd Workshop on Free Composition @ Onward! 2011, FREECO-Onward! 7811, pages 13-18, New York, NY, USA. ACM.
  5. Brooks, F. (1987). No silver bullet: Essence and accidents of software engineering. IEEE computer, 20(4):10- 19.
  6. Dahl, O. J., Dijkstra, E. W., and Hoare, C. A. R., editors (1972). Structured Programming. Academic Press Ltd., London, UK.
  7. Dijkstra, E. W. (1976). A discipline of programming. Prentice-Hall, Englewood Cliffs, New Jersey.
  8. Goldberg, A. and Robson, D. (1983). Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA.
  9. Havinga, W. K., Bergmans, L. M. J., and Aks¸it, M. (2010a). A model for composable composition operators: Expressing object and aspect compositions with firstclass operators. In Proc. 9th Int. Conf. on AspectOriented Software Development, pages 145-156, New York. ACM.
  10. Havinga, W. K., Bockisch, C. M., and Bergmans, L. M. J. (2010b). A case for custom, composable composition operators. In Proc. 1st Int. Workshop on Composition: Objects, Aspects, Components, Services and Product Lines, volume 564 of Workshop Proceedings, pages 45-50. CEUR-WS.
  11. Kiczales, G., des Rivieres, J., and Bobrow, D. G. (1991). The Art of the Metaobject Protocol. MIT Press, Cambridge, Massachusetts.
  12. Royce, W. (2009). Improving software economics-top 10 principles of achieving agility at scale. White paper, IBM Rational.
  13. Sheard, T. and Jones, S. P. (2002). Template metaprogramming for Haskell. SIGPLAN Not., 37:60-75.
  14. Taivalsaari, A. (1996). On the notion of inheritance. ACM Comput. Surv., 28(3):438-479.
  15. Ungar, D. and Smith, R. B. (1987). Self: The power of simplicity. SIGPLAN Not., 22:227-242.

Paper Citation

in Harvard Style

Bergmans L., te Brinke S., Bockisch C. and Akşit M. (2012). Free Composition Instead of Language Dictatorship . In Proceedings of the 7th International Conference on Software Paradigm Trends - Volume 1: ICSOFT, ISBN 978-989-8565-19-8, pages 388-393. DOI: 10.5220/0004082603880393

in Bibtex Style

author={Lodewijk Bergmans and Steven te Brinke and Christoph Bockisch and Mehmet Akşit},
title={Free Composition Instead of Language Dictatorship},
booktitle={Proceedings of the 7th International Conference on Software Paradigm Trends - Volume 1: ICSOFT,},

in EndNote Style

JO - Proceedings of the 7th International Conference on Software Paradigm Trends - Volume 1: ICSOFT,
TI - Free Composition Instead of Language Dictatorship
SN - 978-989-8565-19-8
AU - Bergmans L.
AU - te Brinke S.
AU - Bockisch C.
AU - Akşit M.
PY - 2012
SP - 388
EP - 393
DO - 10.5220/0004082603880393