publications: - title: "Seaside --- a Multiple Control Flow Web Application Framework" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Adrian Lienhard" link: "http://www.adrian-lienhard.ch" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2004" month: "sep" abstract: "Developing web applications is difficult since (1) the client-server relationship is asymmetric: the server cannot update clients but only responds to client requests and (2) the navigation facilities of web browsers lead to a situation where servers cannot control the state of the clients. Page-centric web application frameworks fail to offer adequate solutions to model control flow at a high-level of abstraction. Developers have to work manually around the shortcomings of the HTTP protocol. Some approaches offer better abstractions by composing an application out of components, however they still fail to offer modeling control flow at a high level. Continuation-based approaches solve this problem by providing the facilities to model a control flow over several pages with one piece of code. However combining multiple flows inside the same page is difficult. This article presents Seaside. Seaside is a framework which combines an object-oriented approach with a continuation-based one. A Seaside application is built out of components (i.e., objects) and the logic of the application benefits from the continuation-based program flow infrastructure. Seaside offers a unique way to have multiple control flows on a page, one for each component. This enables the developer to write components that are highly reusable and that can be used to compose complex web applications with higher quality in less time." links: "url": "http://scg.unibe.ch/archive/papers/Duca04eSeaside.pdfhttp://www.iam.unibe.ch/publikationen/techreports/2004/iam-04-008" tags: - "object-oriented programming" - "reusable components" - "rule-based" - "meta programming" - "application framework" - "meta-model" - "modeling" - "protocol" - "reuse" - "data-flow programming" - "data-flow" - "object-role modeling" - "logic programming" - "web applications" - "subject-oriented programming" - "logic" - "abstraction" - "Meta-Environment" - "systematic-approach" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/Duca04e" cites: 0 citedby: 0 booktitle: "Proceedings of 12th International Smalltalk Conference (ISC'04)" kind: "inproceedings" key: "Duca04e" - title: "Back to the Future in One Week - Implementing a Smalltalk VM in PyPy" author: - name: "Carl Friedrich Bolz" link: "https://researchr.org/alias/carl-friedrich-bolz" - name: "Adrian Kuhn" link: "http://scg.unibe.ch/akuhn" - name: "Adrian Lienhard" link: "http://www.adrian-lienhard.ch" - name: "Nicholas D. Matsakis" link: "https://researchr.org/alias/nicholas-d.-matsakis" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Armin Rigo" link: "https://researchr.org/alias/armin-rigo" - name: "Toon Verwaest" link: "https://researchr.org/alias/toon-verwaest" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-89275-5_7" abstract: "We report on our experiences with the Spy project, including implementation details and benchmark results. Spy is a re-implementation of the Squeak (i.e., Smalltalk-80) VM using the PyPy toolchain. The PyPy project allows code written in RPython, a subset of Python, to be translated to a multitude of different backends and architectures. During the translation, many aspects of the implementation can be independently tuned, such as the garbage collection algorithm or threading implementation. In this way, a whole host of interpreters can be derived from one abstract interpreter definition. Spy aims to bring these benefits to Squeak, allowing for greater portability and, eventually, improved performance. The current Spy codebase is able to run a small set of benchmarks that demonstrate performance superior to many similar Smalltalk VMs, but which still run slower than in Squeak itself. Spy was built from scratch over the course of a week during a joint Squeak-PyPy Sprint in Bern last autumn." links: doi: "http://dx.doi.org/10.1007/978-3-540-89275-5_7" tags: - "translation" - "interpreter" - "architecture" researchr: "https://researchr.org/publication/BolzKLMNRRV08" cites: 0 citedby: 0 pages: "123-139" booktitle: "Self-Sustaining Systems, First Workshop, S3 2008, Potsdam, Germany, May 15-16, 2008, Revised Selected Papers" editor: - name: "Robert Hirschfeld" link: "https://researchr.org/alias/robert-hirschfeld" - name: "Kim Rose" link: "https://researchr.org/alias/kim-rose" volume: "5146" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-89274-8" kind: "inproceedings" key: "BolzKLMNRRV08" - title: "Magritte — Meta-Described Web Application Development" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2006" month: "jun" abstract: "Developing applications that end users can customize is a challenge, since end users are domain experts but still have concrete requirements. In this master thesis we present how we used a meta-driven approach to support the end user customization of Web applications. We present Magritte, a recursive meta-data meta-model integrated into the Smalltalk reflective meta-model. The adaptive model of Magritte enables to not only describe existing classes but also let end users build their own meta-models on the fly. Further on we describe how meta-interpreters automatically build views, reports, validating editors and persistency mechanisms. As a complete example of how we applied a meta-model to a Web application we present Pier, the second version of a fully object-oriented implementation of a content management system and Wiki engine. Pier is implemented with objects from the top to the bottom and is designed to be customizable to accommodate new needs. The integration of a powerful meta-description layer makes it a breeze to extend the running system with new functionality without having to patch the core engine. We describe the lessons learned from using the Magritte meta-model to build applications. Both projects described in this thesis are open source and can be downloaded from the Web site of the author." links: "url": "http://scg.unibe.ch/archive/masters/Reng06a.pdf" tags: - "data validation" - "completeness" - "model editor" - "persistent" - "meta-model" - "interpreter" - "persistent object" - "model-driven development" - "data-flow" - "source-to-source" - "object-role modeling" - "wiki" - "web applications" - "Meta-Environment" - "systematic-approach" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/Reng06a" cites: 0 citedby: 0 school: "University of Bern" kind: "mastersthesis" key: "Reng06a" - title: "Embedding Languages without Breaking Tools" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-14107-2_19" links: doi: "http://dx.doi.org/10.1007/978-3-642-14107-2_19" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ecoop/RenggliGN10" researchr: "https://researchr.org/publication/RenggliGN10" cites: 0 citedby: 0 pages: "380-404" booktitle: "ECOOP 2010 - Object-Oriented Programming, 24th European Conference, Maribor, Slovenia, June 21-25, 2010. Proceedings" editor: - name: "Theo D Hondt" link: "https://researchr.org/alias/theo-d-hondt" volume: "6183" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-14106-5" kind: "inproceedings" key: "RenggliGN10" - title: "Transactional memory for Smalltalk" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2007" doi: "http://doi.acm.org/10.1145/1352678.1352692" abstract: "Concurrency control in Smalltalk is based on locks and is therefore notoriously difficult to use. Even though some implementations provide high-level constructs, these add complexity and potentially hard-to-detect bugs to the application. Transactional memory is an attractive mechanism that does not have the drawbacks of locks, however the underlying implementation is often difficult to integrate into an existing language. In this paper we show how we have introduced transactional semantics in Smalltalk by using the reflective facilities of the language. Our approach is based on method annotations, incremental parse tree transformations and an optimistic commit protocol. We report on a practical case study, benchmarks and further and on-going work." links: doi: "http://doi.acm.org/10.1145/1352678.1352692" tags: - "semantics" - "rule-based" - "case study" - "protocol" - "transformation language" - "parsing" - "incremental" - "systematic-approach" - "transformation" researchr: "https://researchr.org/publication/RenggliN07" cites: 0 citedby: 0 pages: "207-221" 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: "RenggliN07" - title: "Domain-Specific Program Checking" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Stéphane Ducasse" link: "https://researchr.org/alias/st%C3%A9phane-ducasse" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-13953-6_12" links: doi: "http://dx.doi.org/10.1007/978-3-642-13953-6_12" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/tools/RenggliDGN10" researchr: "https://researchr.org/publication/RenggliDGN10" cites: 0 citedby: 0 pages: "213-232" booktitle: "Objects, Models, Components, Patterns, 48th International Conference, TOOLS 2010, Málaga, Spain, June 28 - July 2, 2010. Proceedings" editor: - name: "Jan Vitek" link: "https://researchr.org/alias/jan-vitek" volume: "6141" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-13952-9" kind: "inproceedings" key: "RenggliDGN10" - 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: "Dynamic Web Development with Seaside" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "C. David Shaffer" link: "https://researchr.org/alias/c.-david-shaffer" - name: "Rick Zaccone" link: "https://researchr.org/alias/rick-zaccone" - name: "Michael Davies" link: "https://researchr.org/alias/michael-davies" year: "2010" abstract: "Seaside is the open source framework of choice for developing sophisticated and dynamic web applications. Seaside uses the power of objects to master the web. With Seaside web applications is as simple as building desktop applications. Seaside lets you build highly dynamic and interactive web applications. Seaside supports agile development through interactive debugging and unit testing. Seaside is based on Smalltalk, a proven and robust language implemented by different vendors. Seaside is now available for all the major Smalltalk including Pharo, Squeak, GNU Smalltalk, Cincom Smalltalk, GemStone Smalltalk, and VA Smalltalk." links: "url": "http://book.seaside.st/book" tags: - "JavaScript" - "rule-based" - "application framework" - "smalltalk" - "testing" - "Seaside" - "source-to-source" - "C++" - "debugging" - "web applications" - "web application" - "Meta-Environment" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/Duca10a" cites: 0 citedby: 0 publisher: "Square Bracket Associates" kind: "book" key: "Duca10a" - title: "Seaside: A Flexible Environment for Building Dynamic Web Applications" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Adrian Lienhard" link: "http://www.adrian-lienhard.ch" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/MS.2007.144" abstract: "Nowadays, many complex applications are built with a web browser as their main user interface. However, despite the increasing popularity of the web as an application platform, implementing and maintaining web applications still remains difficult and lags behind conventional desktop application development. The underlying technologies such as HTTP for the interaction and XHTML/CSS for the presentation were originally built to display and link static documents. Unfortunately, most mainstream frameworks provide only little abstraction over the page-oriented structure imposed by those technologies. Inevitably, the goto-like manner of how pages are linked leads to spaghetti code and hampers reuse. In this article we present Seaside, a web application framework that provides an uniform and pure object-oriented view on web applications. In this way, Seaside avoids the unwieldily goto-like style. Exploiting the reflective features of Smalltalk, Seaside reintroduces procedure call abstraction in the client-server context. Seaside's key concepts are: (i) a component architecture supporting multiple, simultaneously active control flows, (ii) a programmatic XHTML generation, and (iii) fully supported on-the-fly debugging, code-editing, and recompilation. In this article we discuss these key features of Seaside and explain how they are made possible by the dynamic nature and the reflective capabilities of Smalltalk." links: doi: "http://doi.ieeecomputersociety.org/10.1109/MS.2007.144" tags: - "CSS" - "reusable components" - "application framework" - "architecture" - "reuse" - "data-flow" - "Seaside" - "code generation" - "debugging" - "web applications" - "context-aware" - "abstraction" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DucasseLR07" cites: 0 citedby: 0 journal: "IEEE Software" volume: "24" number: "5" pages: "56-63" kind: "article" key: "DucasseLR07" - 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: "Domain-Specific Profiling" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Jorge Ressia" link: "https://researchr.org/alias/jorge-ressia" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-21952-8_7" links: doi: "http://dx.doi.org/10.1007/978-3-642-21952-8_7" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/tools/BergelNRR11" researchr: "https://researchr.org/publication/BergelNRR11" cites: 0 citedby: 0 pages: "68-82" booktitle: "Objects, Models, Components, Patterns - 49th International Conference, TOOLS 2011, Zurich, Switzerland, June 28-30, 2011. Proceedings" editor: - name: "Judith Bishop" link: "https://researchr.org/alias/judith-bishop" - name: "Antonio Vallecillo" link: "https://researchr.org/alias/antonio-vallecillo" volume: "6705" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-21951-1" kind: "inproceedings" key: "BergelNRR11" - 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: "Transactional Memory in a Dynamic Language" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2009" month: "apr" doi: "10.1016/j.cl.2008.06.001" abstract: "Concurrency control is mostly based on locks and is therefore notoriously difficult to use. Even though some programming languages provide high-level constructs, these add complexity and potentially hard-to-detect bugs to the application. Transactional memory is an attractive mechanism that does not have the drawbacks of locks, however the underlying implementation is often difficult to integrate into an existing language. In this paper we show how we have introduced transactional semantics into Smalltalk by using the reflective facilities of the language. Our approach is based on method annotations, incremental parse tree transformations and an optimistic commit protocol. The implementation does not depend on modifications to the virtual machine and therefore can be changed at the language level. We report on a practical case study, benchmarks and further and on-going work." links: "url": "http://scg.unibe.ch/archive/papers/Reng08aTransMemory.pdf" tags: - "programming languages" - "semantics" - "rule-based" - "case study" - "protocol" - "transformation language" - "programming" - "parsing" - "incremental" - "systematic-approach" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/Reng09a" cites: 0 citedby: 0 journal: "Journal of Computer Languages, Systems and Structures" volume: "35" number: "1" kind: "article" key: "Reng09a" - title: "Magritte - A Meta-driven Approach to Empower Developers and End Users" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Adrian Kuhn" link: "http://scg.unibe.ch/akuhn" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-75209-7_8" abstract: "Developing applications that end users can customize is a challenge, since end users are domain experts but still have concrete requirements. In this master thesis we present how we used a meta-driven approach to support the end user customization of Web applications. We present Magritte, a recursive meta-data meta-model integrated into the Smalltalk reflective meta-model. The adaptive model of Magritte enables to not only describe existing classes but also let end users build their own meta-models on the fly. Further on we describe how meta-interpreters automatically build views, reports, validating editors and persistency mechanisms. As a complete example of how we applied a meta-model to a Web application we present Pier, the second version of a fully object-oriented implementation of a content management system and Wiki engine. Pier is implemented with objects from the top to the bottom and is designed to be customizable to accommodate new needs. The integration of a powerful meta-description layer makes it a breeze to extend the running system with new functionality without having to patch the core engine. We describe the lessons learned from using the Magritte meta-model to build applications. Both projects described in this thesis are open source and can be downloaded from the Web site of the author." links: doi: "http://dx.doi.org/10.1007/978-3-540-75209-7_8" tags: - "Magritte" - "data validation" - "completeness" - "model editor" - "persistent" - "meta-model" - "interpreter" - "persistent object" - "data-flow" - "source-to-source" - "object-role modeling" - "wiki" - "web applications" - "Meta-Environment" - "systematic-approach" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/RenggliDK07" cites: 0 citedby: 0 pages: "106-120" booktitle: "Model Driven Engineering Languages and Systems, 10th International Conference, MoDELS 2007, Nashville, USA, September 30 - October 5, 2007, Proceedings" editor: - name: "Gregor Engels" link: "https://researchr.org/alias/gregor-engels" - name: "Bill Opdyke" link: "https://researchr.org/alias/bill-opdyke" - name: "Douglas C. Schmidt" link: "https://researchr.org/alias/douglas-c.-schmidt" - name: "Frank Weil" link: "https://researchr.org/alias/frank-weil" volume: "4735" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-75208-0" kind: "inproceedings" key: "RenggliDK07" - title: "Safe reflection through polymorphism" author: - name: "Toon Verwaest" link: "https://researchr.org/alias/toon-verwaest" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2009" doi: "http://doi.acm.org/10.1145/1595768.1595776" abstract: "Code executed in a fully reflective system switches back and forth between application and interpreter code. These two states can be seen as contexts in which an expression is evaluated. Current language implementations obtain reflective capabilities by exposing objects to the interpreter. However, in doing so these systems break the encapsulation of the application objects. In this paper we propose safe reflection through polymorphism, \\ie by unifying the interface and ensuring the encapsulation of objects from both the interpreter and application context. We demonstrate a \\emphhomogeneous system that defines the execution semantics in terms of itself, thus enforcing that encapsulation is not broken." links: doi: "http://doi.acm.org/10.1145/1595768.1595776" tags: - "semantics" - "interpreter" - "computational reflection" - "safe reflection" - "context-aware" - "Meta-Environment" - "reflection" - "meta-objects" researchr: "https://researchr.org/publication/VerwaestR%3ACASTA%3A2009" cites: 0 citedby: 0 booktitle: "CASTA '09: Proceedings of the first international workshop on Context-aware software technology and applications" address: "New York, NY, USA" publisher: "ACM" isbn: "978-1-60558-707-3" kind: "inproceedings" key: "VerwaestR:CASTA:2009" - title: "Seaside - Advanced Composition and Control Flow for Dynamic Web Applications" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "stéphane-ducasse" link: "https://researchr.org/alias/st%C3%A3%C2%A9phane-ducasse" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2008" doi: "http://ercim-news.ercim.eu/seaside-advanced-composition-and-control-flow-for-dynamic-web-applications" links: doi: "http://ercim-news.ercim.eu/seaside-advanced-composition-and-control-flow-for-dynamic-web-applications" tags: - "composition" - "data-flow" - "web applications" researchr: "https://researchr.org/publication/BergelDR08" cites: 0 citedby: 0 journal: "ERCIM News" volume: "2008" number: "72" kind: "article" key: "BergelDR08" - title: "Model-Centric, Context-Aware Software Adaptation" author: - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Marcus Denker" link: "https://researchr.org/alias/marcus-denker" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-02161-9_7" abstract: "Software must be constantly adapted to changing requirements. The time scale, abstraction level and granularity of adaptations may vary from short-term, fine-grained adaptation to long-term, coarse-grained evolution. Fine-grained, dynamic and context-dependent adaptations can be particularly difficult to realize in long-lived, large-scale software systems. We argue that, in order to effectively and efficiently deploy such changes, adaptive applications must be built on an infrastructure that is not just model-driven, but is both model-centric and context-aware. Specifically, this means that high-level, causally-connected models of the application and the software infrastructure itself should be available at run-time, and that changes may need to be scoped to the run-time execution context. We first review the dimensions of software adaptation and evolution, and then we show how model-centric design can address the adaptation needs of a variety of applications that span these dimensions. We demonstrate through concrete examples how model-centric and context-aware designs work at the level of application interface, programming language and runtime. We then propose a research agenda for a model-centric development environment that supports dynamic software adaptation and evolution." links: doi: "http://dx.doi.org/10.1007/978-3-642-02161-9_7" tags: - "programming languages" - "deployment" - "meta programming" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "design research" - "language design" - "model-driven development" - "software evolution" - "reviewing" - "programming" - "context-aware" - "abstraction" - "Meta-Environment" - "design" researchr: "https://researchr.org/publication/NierstraszDR09" cites: 0 citedby: 0 pages: "128-145" booktitle: "Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar]" editor: - name: "Betty H. C. Cheng" link: "https://researchr.org/alias/betty-h.-c.-cheng" - name: "Rogério de Lemos" link: "https://researchr.org/alias/rog%C3%A9rio-de-lemos" - name: "Holger Giese" link: "https://researchr.org/alias/holger-giese" - name: "Paola Inverardi" link: "https://researchr.org/alias/paola-inverardi" - name: "Jeff Magee" link: "https://researchr.org/alias/jeff-magee" volume: "5525" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-02160-2" kind: "inproceedings" key: "NierstraszDR09" - title: "SmallWiki: a meta-described collaborative content management system" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2005" doi: "http://doi.acm.org/10.1145/1104981" abstract: "Wikis are often implemented using string-based approaches to parse and generate their pages. While such approaches work well for simple wikis, they hamper the customization and adaptability of wikis to the variety of end-users when more sophisticated needs are required (i.e., different output formats, user-interfaces, wiki managment, security policies, ...). In this paper we present SmallWiki, the second version of a fully object-oriented implementation of a wiki. SmallWiki is implemented with objects from the top to the bottom and it can be customized easily to accommodate new needs. In addition, SmallWiki is based on a powerful meta-description called Magritte that allows one to create user-interface elements declaratively." links: doi: "http://doi.acm.org/10.1145/1104981" tags: - "rule-based" - "meta-model" - "wiki" - "security" - "Meta-Environment" - "parsing" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/DucasseRW05" cites: 0 citedby: 0 pages: "75-82" booktitle: "Proceedings of the 2005 International Symposium on Wikis, 2005, San Diego, California, USA, October 16-18, 2005" editor: - name: "Dirk Riehle" link: "http://dirkriehle.com/" publisher: "ACM" isbn: "1-59593-111-2" kind: "inproceedings" key: "DucasseRW05" - title: "Transactional memory in a dynamic language" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2009" doi: "http://dx.doi.org/10.1016/j.cl.2008.06.001" links: doi: "http://dx.doi.org/10.1016/j.cl.2008.06.001" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/cl/RenggliN09" researchr: "https://researchr.org/publication/RenggliN09" cites: 0 citedby: 0 journal: "Computer Languages, Systems \\& Structures" volume: "35" number: "1" pages: "21-30" kind: "article" key: "RenggliN09" - 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: "Seaside -- Advanced Composition and Control Flow for Dynamic Web Applications" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2008" month: "jan" abstract: "Page-centric Web application frameworks fail to offer adequate solutions to model composition and control flow. Seaside allows Web applications to be developed in the same way as desktop applications. Control flow is modelled as a continuous piece of code, and components may be composed, configured and nested as one would expect from traditional user interface frameworks." links: "url": "http://ercim-news.ercim.org/content/view/325/536/" tags: - "web application development" - "application framework" - "meta-model" - "composition" - "model-driven development" - "data-flow" - "Seaside" - "web applications" - "Meta-Environment" - "user interface composition" researchr: "https://researchr.org/publication/Berg08a" cites: 0 citedby: 0 journal: "ERCIM News" volume: "72" kind: "article" key: "Berg08a" - 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: "Meta-environment and executable meta-language using smalltalk: an experience report" author: - name: "stéphane-ducasse" link: "https://researchr.org/alias/st%C3%A3%C2%A9phane-ducasse" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%A3%C2%AErba" - name: "Adrian Kuhn" link: "http://scg.unibe.ch/akuhn" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2009" doi: "http://dx.doi.org/10.1007/s10270-008-0081-4" links: doi: "http://dx.doi.org/10.1007/s10270-008-0081-4" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DucasseGKR09" cites: 0 citedby: 0 journal: "Software and Systems Modeling" volume: "8" number: "1" pages: "5-19" kind: "article" key: "DucasseGKR09" - title: "Transactional Memory for Smalltalk" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2007" doi: "10.1145/1352678.1352692" abstract: "Concurrency control in Smalltalk is based on locks and is therefore notoriously difficult to use. Even though some implementations provide high-level constructs, these add complexity and potentially hard-to-detect bugs to the application. Transactional memory is an attractive mechanism that does not have the drawbacks of locks, however the underlying implementation is often difficult to integrate into an existing language. In this paper we show how we have introduced transactional semantics in Smalltalk by using the reflective facilities of the language. Our approach is based on method annotations, incremental parse tree transformations and an optimistic commit protocol. We report on a practical case study, benchmarks and further and on-going work." links: "url": "http://scg.unibe.ch/archive/papers/Reng07bTransMem.pdf" tags: - "semantics" - "rule-based" - "case study" - "protocol" - "transformation language" - "parsing" - "incremental" - "systematic-approach" - "transformation" researchr: "https://researchr.org/publication/Reng07b" 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: "Reng07b" - 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: "Language Boxes: Bending the Host Language with Modular Language Changes" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Marcus Denker" link: "https://researchr.org/alias/marcus-denker" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2009" abstract: "As domain-specific modeling begins to attract widespread acceptance, pressure is increasing for the development of new domain-specific languages. Unfortunately these DSLs typically conflict with the grammar of the host language, making it difficult to compose hybrid code except at the level of strings; few mechanisms (if any) exist to control the scope of usage of multiple DSLs; and, most seriously, existing host language tools are typically unaware of the DSL extensions, thus hampering the development process. Language boxes address these issues by offering a simple, modular mechanism to encapsulate (i) compositional changes to the host language, (ii) transformations to address various concerns such as compilation and highlighting, and (iii) scoping rules to control visibility of language extensions. We describe the design and implementation of language boxes, and show with the help of several examples how modular extensions can be introduced to a host language and environment." note: "To Appear" links: "pdf": "http://scg.unibe.ch/archive/papers/Reng09cLanguageBoxes.pdf" tags: - "model-to-model transformation" - "rule-based" - "meta-model" - "modeling language" - "modeling" - "transformation language" - "language modeling" - "composition" - "language design" - "model-driven development" - "source-to-source" - "rules" - "model transformation" - "DSL" - "Meta-Environment" - "design" - "process modeling" - "transformation" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/Reng09c" cites: 27 citedby: 2 booktitle: "Software Language Engineering: Second International Conference, SLE 2009, Denver, Colorado, October 5-6, 2009" series: "LNCS" publisher: "Springer" kind: "inproceedings" key: "Reng09c" - 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" - title: "SmallWiki --- A Meta-Described Collaborative Content Management System" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2005" doi: "10.1145/1104973.1104981" abstract: "Wikis are often implemented using string-based approaches to parse and generate their pages. While such approaches work well for simple wikis, they hamper the customization and adaptability of wikis to the variety of end-users when more sophisticated needs are required (i.e., different output formats, user-interfaces, wiki managment, security policies, ...). In this paper we present SmallWiki, the second version of a fully object-oriented implementation of a wiki. SmallWiki is implemented with objects from the top to the bottom and it can be customized easily to accommodate new needs. In addition, SmallWiki is based on a powerful meta-description called Magritte that allows one to create user-interface elements declaratively." links: "url": "http://www.iam.unibe.ch/~scg/Archive/Papers/Duca05hSmallwikiWikiSymp05.pdf" tags: - "rule-based" - "meta-model" - "wiki" - "security" - "Meta-Environment" - "parsing" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/Duca05h" cites: 0 citedby: 0 booktitle: "Proceedings ACM International Symposium on Wikis (WikiSym'05)" address: "New York, NY, USA" publisher: "ACM Computer Society" kind: "inproceedings" key: "Duca05h"