publications: - title: "Encapsulating and Exploiting Change with Changeboxes" author: - name: "Marcus Denker" link: "https://researchr.org/alias/marcus-denker" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Adrian Lienhard" link: "http://www.adrian-lienhard.ch" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Pascal Zumkehr" link: "https://researchr.org/alias/pascal-zumkehr" year: "2007" doi: "10.1145/1352678.1352681" abstract: "Real world software systems change continuously to meet new demands. Most programming languages and development environments, however, are more concerned with limiting the effects of change rather than enabling and exploiting change. Various techniques and technologies to exploit change have been developed over the years, but there exists no common support for these approaches. We propose Changeboxes as a general-purpose mechanism for encapsulating change as a first-class entity in a running software system. Changeboxes support multiple, concurrent and possibly inconsistent views of software artifacts within the same running system. Since Changeboxes are first-class, they can be manipulated to control the scope of change in a running system.Furthermore, Changeboxes capture the semantics of change. Changeboxes can be used, for example, to encapsulate refactorings, or to replay or analyze the history of changes. In this paper we introduce Changeboxes by means of a prototype implementation. We illustrate the benefits that Changeboxes offer for evolving software systems, and we present the results of a preliminary performance evaluation that assesses the costs associated with Changeboxes while suggesting possible strategies for improvement." links: "url": "http://scg.unibe.ch/archive/papers/Denk07cChangeboxes.pdf" tags: - "control systems" - "programming languages" - "semantics" - "meta programming" - "refactoring" - "programming" - "history" - "Meta-Environment" - "Pascal" - "systematic-approach" researchr: "https://researchr.org/publication/Denk07c" cites: 0 citedby: 0 booktitle: "Proceedings of the 2007 International Conference on Dynamic Languages (ICDL 2007)" publisher: "ACM Digital Library" isbn: "978-1-60558-084-5" kind: "inproceedings" key: "Denk07c" - title: "Domain-Specific Program Checking" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2010" doi: "10.1007/978-3-642-13953-6_12" abstract: "Lint-like program checkers are popular tools that ensure code quality by verifying compliance with best practices for a particular programming language. The proliferation of internal domain-specific languages and models, however, poses new challenges for such tools. Traditional program checkers produce many false positives and fail to accurately check constraints, best practices, common errors, possible optimizations and portability issues particular to domain-specific languages. We advocate the use of dedicated rules to check domain-specific practices. We demonstrate the implementation of domain-specific rules, the automatic fixing of violations, and their application to two case-studies: (1) Seaside defines several internal DSLs through a creative use of the syntax of the host language; and (2) Magritte adds meta-descriptions to existing code by means of special methods. Our empirical validation demonstrates that domain-specific program checking significantly improves code quality when compared with general purpose program checking." links: "url": "http://scg.unibe.ch/archive/papers/Reng10bDomainSpecificProgramChecking.pdf" tags: - "empirical" - "programming languages" - "optimization" - "rule-based" - "meta programming" - "case study" - "model checking" - "program verification" - "meta-model" - "modeling language" - "language modeling" - "helvetia" - "constraints" - "rules" - "DSL" - "programming" - "program checking" - "program optimization" - "Meta-Environment" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/Reng10b" cites: 21 citedby: 0 booktitle: "Proceedings of the 48th International Conference on Objects, Models, Components and Patterns (TOOLS'10)" volume: "6141" series: "LNCS" publisher: "Springer-Verlag" kind: "inproceedings" key: "Reng10b" - title: "Encapsulating and exploiting change with Changeboxes" author: - name: "Marcus Denker" link: "https://researchr.org/alias/marcus-denker" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Adrian Lienhard" link: "http://www.adrian-lienhard.ch" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Pascal Zumkehr" link: "https://researchr.org/alias/pascal-zumkehr" year: "2007" doi: "http://doi.acm.org/10.1145/1352678.1352681" abstract: "Real world software systems change continuously to meet new demands. Most programming languages and development environments, however, are more concerned with limiting the effects of change rather than enabling and exploiting change. Various techniques and technologies to exploit change have been developed over the years, but there exists no common support for these approaches. We propose Changeboxes as a general-purpose mechanism for encapsulating change as a first-class entity in a running software system. Changeboxes support multiple, concurrent and possibly inconsistent views of software artifacts within the same running system. Since Changeboxes are first-class, they can be manipulated to control the scope of change in a running system.Furthermore, Changeboxes capture the semantics of change. Changeboxes can be used, for example, to encapsulate refactorings, or to replay or analyze the history of changes. In this paper we introduce Changeboxes by means of a prototype implementation. We illustrate the benefits that Changeboxes offer for evolving software systems, and we present the results of a preliminary performance evaluation that assesses the costs associated with Changeboxes while suggesting possible strategies for improvement." links: doi: "http://doi.acm.org/10.1145/1352678.1352681" tags: - "control systems" - "programming languages" - "semantics" - "meta programming" - "refactoring" - "programming" - "history" - "Meta-Environment" - "Pascal" - "systematic-approach" researchr: "https://researchr.org/publication/DenkerGLNRZ07" cites: 0 citedby: 0 pages: "25-49" booktitle: "Proceedings of the 2007 International Conference on Dynamic Languages (ICDL 2007), organised in conjunction with the 15th International Smalltalk Joint Conference 2007, Lugano, Switzerland, 25-31 August 2007" editor: - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Jean-François Perrot" link: "https://researchr.org/alias/jean-fran%C3%A7ois-perrot" volume: "286" series: "ACM International Conference Proceeding Series" publisher: "ACM" isbn: "978-1-60558-084-5" kind: "inproceedings" key: "DenkerGLNRZ07" - title: "Embedding Languages Without Breaking Tools" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2010" doi: "10.1007/978-3-642-14107-2_19" abstract: "Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose host languages. DSLs provide a compact, dedicated syntax for specifying parts of an application related to specialized domains. Unfortunately, such language extensions typically do not integrate well with the development tools of the host language. Editors, compilers and debuggers are either unaware of the extensions, or must be adapted at a non-trivial cost. We present a novel approach to embed DSLs into an existing host language by leveraging the underlying representation of the host language used by these tools. Helvetia is an extensible system that intercepts the compilation pipeline of the Smalltalk host language to seamlessly integrate language extensions. We validate our approach by case studies that demonstrate three fundamentally different ways to extend or adapt the host language syntax and semantics." links: "url": "http://scg.unibe.ch/archive/papers/Reng10aEmbeddingLanguages.pdf" tags: - "embedded languages" - "semantics" - "case study" - "helvetia" - "debugging" - "compiler" - "DSL" - "extensible language" - "systematic-approach" - "domain-specific language" researchr: "https://researchr.org/publication/Reng10a" cites: 41 citedby: 1 booktitle: "Proceedings of the 24th European Conference on Object-Oriented Programming (ECOOP'10)" volume: "6183" series: "LNCS" publisher: "Springer-Verlag" isbn: "978-3-642-14106-5" kind: "inproceedings" key: "Reng10a" - title: "Why Smalltalk Wins the Host Languages Shootout" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" year: "2009" abstract: "Integration of multiple languages into each other and into an existing development environment is a difficult task. As a consequence, developers often end up using only internal DSLs that strictly rely on the constraints imposed by the host language. Infrastructures do exist to mix languages, but they often do it at the price of losing the development tools of the host language. Instead of inventing a completely new infrastructure, our solution is to integrate new languages deeply into the existing host environment and reuse the infrastructure offered by it. In this paper we show why Smalltalk is the best practical choice for such a host language." note: "To appear" tags: - "DSL engineering" - "language engineering" - "constraints" - "reuse" - "DSL" - "Meta-Environment" researchr: "https://researchr.org/publication/Reng09b" cites: 0 citedby: 1 booktitle: "Proceedings of International Workshop on Smalltalk Technologies (IWST 2009)" publisher: "ACM Digital Library" kind: "inproceedings" key: "Reng09b" - title: "Practical Dynamic Grammars for Dynamic Languages" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2010" month: "jun" abstract: "Grammars for programming languages are traditionally specified statically. They are hard to compose and reuse due to ambiguities that inevitably arise. PetitParser combines ideas from scannerless parsing, parser combinators, parsing expression grammars and packrat parsers to model grammars and parsers as objects that can be reconfigured dynamically. Through examples and benchmarks we demonstrate that dynamic grammars are not only flexible but highly practical." links: "url": "http://scg.unibe.ch/archive/papers/Reng10cDynamicGrammars.pdf" tags: - "programming languages" - "object-oriented programming" - "meta programming" - "meta-model" - "modeling language" - "language modeling" - "helvetia" - "reuse" - "object-role modeling" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "scannerless parsing" - "feature-oriented programming" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/Reng10c" cites: 18 citedby: 0 booktitle: "4th Workshop on Dynamic Languages and Applications (DYLA 2010)" address: "Malaga, Spain" kind: "inproceedings" key: "Reng10c" - title: "Meta-Environment and Executable Meta-Language using Smalltalk: an Experience Report" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Adrian Kuhn" link: "http://scg.unibe.ch/akuhn" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2009" month: "feb" doi: "10.1007/s10270-008-0081-4" links: "url": "http://scg.unibe.ch/archive/drafts/Duca08a-Sosym-ExecutableMetaLanguage.pdf" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/Duca08a" cites: 0 citedby: 0 journal: "Journal of Software and Systems Modeling (SOSYM)" volume: "8" number: "1" kind: "article" key: "Duca08a"