Free composition instead of language dictatorship

Lodewijk Bergmans, Steven te Brinke, Christoph Bockisch, Mehmet Aksit

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

    340 Downloads (Pure)


    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.
    Original languageUndefined
    Title of host publicationProceedings of the 7th International Conference on Software Paradigm Trends, ICSOFT 2012
    Number of pages6
    ISBN (Print)978-989-8565-19-8
    Publication statusPublished - Jul 2012
    Event7th International Conference on Software Paradigm Trends, ICSOFT 2012 - Rome, Italy
    Duration: 24 Jul 201227 Jul 2012
    Conference number: 7

    Publication series



    Conference7th International Conference on Software Paradigm Trends, ICSOFT 2012
    Abbreviated titleICSOFT
    Internet address


    • METIS-296111
    • IR-83368
    • Language Design
    • EWI-22371
    • Free Composition
    • Software Composition
    • Language Engineering

    Cite this