publications: - title: "EventScript: an event-processing language based on regular expressions with actions" author: - name: "Norman H. Cohen" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/ncohen.index.html" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" year: "2008" doi: "http://doi.acm.org/10.1145/1375657.1375673" links: doi: "http://doi.acm.org/10.1145/1375657.1375673" tags: - "rule-based" researchr: "https://researchr.org/publication/CohenK08" cites: 0 citedby: 0 pages: "111-120" booktitle: "lctrts" kind: "inproceedings" key: "CohenK08" - title: "Stratego/XT Reference Manual" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Rob Vermaas" link: "https://researchr.org/profile/robvermaas/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://releases.strategoxt.org/strategoxt-manual/strategoxt-manual-0.17pre18721-8c3vml4h/manual/" links: doi: "http://releases.strategoxt.org/strategoxt-manual/strategoxt-manual-0.17pre18721-8c3vml4h/manual/" "html": "http://releases.strategoxt.org/strategoxt-manual/strategoxt-manual-0.17pre18721-8c3vml4h/manual/" researchr: "https://researchr.org/publication/StrategoXTReferenceManual" cites: 0 citedby: 0 kind: "manual" key: "StrategoXTReferenceManual" - title: "Feature Models are Views on Ontologies" author: - name: "Krzysztof Czarnecki" link: "http://www.swen.uwaterloo.ca/~kczarnec/" - name: "Chang Hwan Peter Kim" link: "https://researchr.org/alias/chang-hwan-peter-kim" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" year: "2006" tags: - "ontologies" - "ontology" - "meta-model" - "Meta-Environment" researchr: "https://researchr.org/publication/CzarneckiKK06" cites: 0 citedby: 0 pages: "41-51" booktitle: "SPLC" kind: "inproceedings" key: "CzarneckiKK06" - title: "Combining Aspect-Oriented and Strategic Programming" author: - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2005" month: "August" abstract: "Properties such as logging, persistence, debugging, tracing, distribution, performance monitoring and exception handling occur in most programming paradigms and are normally very difficult or even impossible to modularize with traditional modularization mechanisms because they are cross-cutting. Recently, aspect-oriented programming has enjoyed recognition as a practical solution for separating these concerns. In this paper we describe an extension to the Stratego term rewriting language for capturing such properties. We show our aspect language offers a concise, practical and adaptable solution for dealing with unanticipated algorithm extension for forward data-flow propagation and dynamic type checking of terms. We briefly discuss some of the challenges faced when designing and implementing an aspect extension for and in a rule-based term rewriting system." links: "techreport": "http://www.cs.uu.nl/research/techreps/UU-CS-2005-030.html" "pdf": "http://www.cs.uu.nl/research/techreps/repo/CS-2005/2005-030.pdf" researchr: "https://researchr.org/publication/KallebergV05" cites: 0 citedby: 0 institution: "Department of Information and Computing Sciences. Universiteit Utrecht" number: "UU-CS-2005-030" kind: "techreport" key: "KallebergV05" - title: "Finding Software License Violations Through Binary Code Clone Detection - A Retrospective" author: - name: "Armijn Hemel" link: "https://researchr.org/alias/armijn-hemel" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Rob Vermaas" link: "https://researchr.org/alias/rob-vermaas" - name: "Eelco Dolstra" link: "https://researchr.org/alias/eelco-dolstra" year: "2021" doi: "https://doi.org/10.1145/3468744.3468752" links: doi: "https://doi.org/10.1145/3468744.3468752" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/sigsoft/HemelKVD21" researchr: "https://researchr.org/publication/HemelKVD21" cites: 0 citedby: 0 journal: "sigsoft" volume: "46" number: "3" pages: "24-25" kind: "article" key: "HemelKVD21" - title: "Fusing a Transformation Language with an Open Compiler" author: - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.042" abstract: "Program transformation systems provide powerful analysis and transformation frameworks as well as concise languages for language processing, but instantiating them for every subject language is an arduous task, most often resulting in half-completed frontends. Compilers provide mature frontends with robust parsers and type checkers, but solving language processing problems in general-purpose languages without transformation libraries is tedious. Reusing these frontends with existing transformation systems is therefore attractive. However, for this reuse to be optimal, the functional logic found in the frontend should be exposed to the transformation system – simple data serialization of the abstract syntax tree is not enough, since this fails to expose important compiler functionality, such as import graphs, symbol tables and the type checker. In this paper, we introduce a novel and general technique for combining term-based transformation systems with existing language frontends. The technique is presented in the context of a scriptable analysis and transformation framework for Java built on top of the Eclipse Java compiler. The framework consists of an adapter automatically extracted from the abstract syntax tree of the compiler and an interpreter for the Stratego program transformation language. The adapter allows the Stratego interpreter to rewrite directly on the compiler AST. We illustrate the applicability of our system with scripts written in Stratego that perform framework and library-specific analyses and transformations." links: doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.042" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-025.pdf" tags: - "programming languages" - "model-to-model transformation" - "object-oriented programming" - "rule-based" - "Java" - "program analysis" - "Eclipse" - "completeness" - "data-flow language" - "graph transformation" - "interpreter" - "abstract syntax" - "Stratego/XT" - "transformation language" - "term rewriting" - "functional programming" - "Eclipse Java Compiler" - "points-to analysis" - "domain analysis" - "analysis" - "type system" - "reuse" - "data-flow programming" - "data-flow" - "source-to-source" - "graph-rewriting" - "logic programming" - "transformation system" - "compiler" - "model transformation" - "open compiler" - "subject-oriented programming" - "context-aware" - "logic" - "Spoofax" - "rewriting logic" - "rewriting" - "data-flow analysis" - "parsing" - "feature-oriented programming" - "open-source" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/KallebergV08" cites: 0 citedby: 1 journal: "ENTCS" volume: "203" number: "2" pages: "21-36" kind: "article" key: "KallebergV08" - title: "Software development environments on the web: a research agenda" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Richard Vogelij" link: "http://www.linkedin.com/pub/richard-vogelij/10/554/719" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2012" abstract: "Software is rapidly moving from the desktop to the Web. The Web provides a generic user interface that allows ubiquitous access, instant collaboration, integration with other online services, and avoids installation and configuration on desktop computers. For software development, the Web presents a shift away from developer workstations as a silo, and has the promise of closer collaboration and improved feedback through innovations in Web-based interactive development environments (IDEs). Moving IDEs to the Web is not just a matter of porting desktop IDEs; a fundamental reconsideration of the IDE architecture is necessary in order to realize the full potential that the combination of modern IDEs and the Web can offer. This paper discusses research challenges and opportunities in this area, guided by a pilot study of a web IDE implementation." links: published: "https://researchr.org/publication/KatsVKV12" researchr: "https://researchr.org/publication/preprint-KatsVKV12" cites: 0 citedby: 0 type: "Preprint" kind: "techreport" key: "preprint-KatsVKV12" - title: "Interactive Disambiguation of Meta Programs with Concrete Object Syntax" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_22" abstract: "In meta-programming with concrete object syntax, meta programs can be written using the concrete syntax of manipulated programs. Quotations of concrete syntax fragments and anti-quotations for meta-level expressions and variables are used to manipulate the abstract representation of programs. These small, isolated fragments are often ambiguous and must be explicitly disambiguated with quotation tags or types, using names from the non-terminals of the object language syntax. Discoverability of these names has been an open issue, as they depend on the (grammar) implementation and are not part of the concrete syntax of a language. Based on advances in interactive development environments, we introduce interactive disambiguation to address this issue, providing real-time feedback and proposing quick fixes in case of ambiguities. " links: doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_22" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/KatsKV10" tags: - "programming languages" - "object-oriented programming" - "concrete object syntax" - "rule-based" - "meta programming" - "meta-model" - "abstract syntax" - "tagging" - "disambiguation" - "model-driven development" - "source-to-source" - "C++" - "programming" - "subject-oriented programming" - "Meta-Environment" - "feature-oriented programming" - "concrete syntax" - "open-source" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/KatsKV10-SLE" cites: 0 citedby: 0 pages: "327-336" booktitle: "SLE" kind: "inproceedings" key: "KatsKV10-SLE" - title: "Finding software license violations through binary code clone detection" author: - name: "Armijn Hemel" link: "https://researchr.org/alias/armijn-hemel" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Rob Vermaas" link: "https://researchr.org/profile/robvermaas/publications" - name: "Eelco Dolstra" link: "https://researchr.org/profile/eelcodolstra/publications" year: "2011" doi: "http://doi.acm.org/10.1145/1985441.1985453" links: doi: "http://doi.acm.org/10.1145/1985441.1985453" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/msr/HemelKVD11" researchr: "https://researchr.org/publication/HemelKVD11" cites: 0 citedby: 0 pages: "63-72" booktitle: "msr" kind: "inproceedings" key: "HemelKVD11" - title: "The Third Rewrite Engines Competition" author: - name: "Francisco Durán" link: "http://www.lcc.uma.es/~duran/" - name: "Manuel Roldán" link: "https://researchr.org/alias/manuel-rold%C3%A1n" - name: "Jean-Christophe Bach" link: "http://www.loria.fr/~bachjeje" - name: "Emilie Balland" link: "http://www.loria.fr/~balland/" - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "James R. Cordy" link: "http://research.cs.queensu.ca/~cordy/" - name: "Steven Eker" link: "http://www.csl.sri.com/people/eker/" - name: "Luc Engelen" link: "https://researchr.org/alias/luc-engelen" - name: "Maartje de Jonge" link: "https://researchr.org/profile/maartjedejonge/publications" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Pierre-Etienne Moreau" link: "http://www.loria.fr/~moreau/dokuwiki/doku.php" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-16310-4_16" abstract: "This paper presents the main results and conclusions of the Third Rewrite Engines Competition (REC III). This edition of the competition took place as part of the 8th Workshop on Rewriting Logic and its Applications (WRLA 2010), and the systems ASF+SDF, Maude, Stratego/XT, Tom, and TXL participated in it." links: doi: "http://dx.doi.org/10.1007/978-3-642-16310-4_16" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/wrla/DuranRBBBCEEJK10" tags: - "graph-rewriting" - "C++" - "rewriting" researchr: "https://researchr.org/publication/DuranRBBBCEEJK10" cites: 0 citedby: 0 pages: "243-261" booktitle: "WRLA" kind: "inproceedings" key: "DuranRBBBCEEJK10" - title: "The Second Rewrite Engines Competition" author: - name: "Francisco Durán" link: "http://www.lcc.uma.es/~duran/" - name: "Manuel Roldán" link: "https://researchr.org/alias/manuel-rold%C3%A1n" - name: "Emilie Balland" link: "http://www.loria.fr/~balland/" - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Steven Eker" link: "http://www.csl.sri.com/people/eker/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Pierre-Etienne Moreau" link: "http://www.loria.fr/~moreau/dokuwiki/doku.php" - name: "Ruslan Shevchenko" link: "https://researchr.org/alias/ruslan-shevchenko" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://dx.doi.org/10.1016/j.entcs.2009.05.025" abstract: "The 2nd Rewrite Engines Competition (REC) was celebrated as part of the 7th Workshop on Rewriting Logic and its Applications (WRLA 2008). In this edition of the competition participated ve systems, namely ASF+SDF, Maude, Stratego/XT, Termware, and Tom. We explain here how the competition was organized and conducted, and present its main results and conclusions." links: doi: "http://dx.doi.org/10.1016/j.entcs.2009.05.025" tags: - "rewrite engine" - "SDF" - "term rewriting" - "graph-rewriting" - "C++" - "logic" - "rewriting logic" - "rewriting" - "rewriting strategies" - "ASF+SDF" - "Stratego" researchr: "https://researchr.org/publication/DuranRBBEKKMSV09" cites: 0 citedby: 0 journal: "ENTCS" volume: "238" number: "3" pages: "281-291" kind: "article" key: "DuranRBBEKKMSV09" - title: "Domain-Specific Languages for Composable Editor Plugins" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "http://dx.doi.org/10.1016/j.entcs.2010.08.038" abstract: "Modern IDEs increase developer productivity by incorporating many different kinds of editor services. These can be purely syntactic, such as syntax highlighting, code folding, and an outline for navigation; or they can be based on the language semantics, such as in-line type error reporting and resolving identifier declarations. Building all these services from scratch requires both the extensive knowledge of the sometimes complicated and highly interdependent APIs and extension mechanisms of an IDE framework, and an in-depth understanding of the structure and semantics of the targeted language. This paper describes Spoofax/IMP, a meta-tooling suite that provides high-level domain-specific languages for describing editor services, relieving editor developers from much of the framework-specific programming. Editor services are defined as composable modules of rules coupled to a modular SDF grammar. The composability provided by the SGLR parser and the declaratively defined services allows embedded languages and language extensions to be easily formulated as additional rules extending an existing language definition. The service definitions are used to generate Eclipse editor plugins. We discuss two examples: an editor plugin for WebDSL, a domain-specific language for web applications, and the embedding of WebDSL in Stratego, used for expressing the (static) semantic rules of WebDSL." links: doi: "http://dx.doi.org/10.1016/j.entcs.2010.08.038" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/entcs/KatsKV10" tags: - "C++" - "domain-specific language" researchr: "https://researchr.org/publication/KatsKV10" cites: 0 citedby: 0 journal: "ENTCS" volume: "253" number: "7" pages: "149-163" kind: "article" key: "KatsKV10" - title: "Making Slicing Mainstream How can we be Weiser?" author: - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Tracy Hall" link: "https://researchr.org/alias/tracy-hall" - name: "Ran Ettinger" link: "https://researchr.org/alias/ran-ettinger" year: "2005" doi: "http://drops.dagstuhl.de/opus/volltexte/2006/486" links: doi: "http://drops.dagstuhl.de/opus/volltexte/2006/486" tags: - "slicing" researchr: "https://researchr.org/publication/KallebergHE05" cites: 0 citedby: 0 booktitle: "Dagstuhl" kind: "inproceedings" key: "KallebergHE05" - title: "Stratego/XT 0.16: components for transformation systems" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Rob Vermaas" link: "https://researchr.org/profile/robvermaas/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2006" doi: "http://doi.acm.org/10.1145/1111542.1111558" abstract: "Stratego/XT is a language and toolset for program transformation. The Stratego language provides rewrite rules for expressing basic transformations, programmable rewriting strategies for controlling the application of rules, concrete syntax for expressing the patterns of rules in the syntax of the object language, and dynamic rewrite rules for expressing context-sensitive transformations, thus supporting the development of transformation components at a high level of abstraction. The XT toolset offers a collection of flexible, reusable transformation components, as well as declarative languages for deriving new components. Complete program transformation systems are composed from these components. In this paper we give an overview of Stratego/XT 0.16. " links: doi: "http://doi.acm.org/10.1145/1111542.1111558" successor: "https://researchr.org/publication/BravenboerKVV08" tags: - "control systems" - "programming languages" - "object-oriented programming" - "concrete object syntax" - "reusable components" - "rule-based" - "completeness" - "meta programming" - "pattern language" - "graph transformation" - "Stratego/XT" - "transformation language" - "reuse" - "graph-rewriting" - "rules" - "transformation system" - "subject-oriented programming" - "context-aware" - "abstraction" - "Meta-Environment" - "rewriting" - "rewriting strategies" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/BravenboerKVV06" cites: 0 citedby: 0 pages: "95-99" booktitle: "PEPM" kind: "inproceedings" key: "BravenboerKVV06" - title: "Stratego: a programming language for program manipulation" author: - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" year: "2006" doi: "http://doi.acm.org/10.1145/1144366.1144370" links: doi: "http://doi.acm.org/10.1145/1144366.1144370" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/crossroads/Kalleberg06" tags: - "programming languages" - "programming" - "Stratego" researchr: "https://researchr.org/publication/Kalleberg06" cites: 0 citedby: 0 journal: "crossroads" volume: "12" number: "3" pages: "4" kind: "article" key: "Kalleberg06" - title: "Combining Aspect-Oriented and Strategic Programming" author: - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2006" doi: "http://dx.doi.org/10.1016/j.entcs.2005.06.035" abstract: "Properties such as logging, persistence, debugging, tracing, distribution, performance monitoring and exception handling occur in most programming paradigms and are normally very difficult or even impossible to modularize with traditional modularization mechanisms because they are cross-cutting. Recently, aspect-oriented programming has enjoyed recognition as a practical solution for separating these concerns. In this paper we describe an extension to the Stratego term rewriting language for capturing such properties. We show our aspect language offers a concise, practical and adaptable solution for dealing with unanticipated algorithm extension for forward data-flow propagation and dynamic type checking of terms. We briefly discuss some of the challenges faced when designing and implementing an aspect extension for and in a rule-based term rewriting system." links: doi: "http://dx.doi.org/10.1016/j.entcs.2005.06.035" tags: - "programming languages" - "object-oriented programming" - "rule-based" - "transformation aspects" - "data-flow language" - "graph transformation" - "exceptions" - "Stratego/XT" - "transformation language" - "term rewriting" - "type system" - "data-flow programming" - "data-flow" - "graph-rewriting" - "rules" - "programming paradigms" - "type checking" - "strategic programming" - "debugging" - "transformation system" - "Strategic term rewriting" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "rewriting" - "feature-oriented programming" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/KallebergV06" cites: 0 citedby: 0 journal: "ENTCS" volume: "147" number: "1" pages: "5-30" kind: "article" key: "KallebergV06" - title: "Software development environments on the web: a research agenda" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Richard Vogelij" link: "http://www.linkedin.com/pub/richard-vogelij/10/554/719" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2012" doi: "http://doi.acm.org/10.1145/2384592.2384603" abstract: "Software is rapidly moving from the desktop to the Web. The Web provides a generic user interface that allows ubiquitous access, instant collaboration, integration with other online services, and avoids installation and configuration on desktop computers. For software development, the Web presents a shift away from developer workstations as a silo, and has the promise of closer collaboration and improved feedback through innovations in Web-based interactive development environments (IDEs). Moving IDEs to the Web is not just a matter of porting desktop IDEs; a fundamental reconsideration of the IDE architecture is necessary in order to realize the full potential that the combination of modern IDEs and the Web can offer. This paper discusses research challenges and opportunities in this area, guided by a pilot study of a web IDE implementation." links: doi: "http://doi.acm.org/10.1145/2384592.2384603" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/KatsVKV12" technicalreport: "https://researchr.org/publication/preprint-KatsVKV12" researchr: "https://researchr.org/publication/KatsVKV12" cites: 0 citedby: 0 pages: "99-116" booktitle: "OOPSLA" kind: "inproceedings" key: "KatsVKV12" - title: "Generating Editors for Embedded Languages. Integrating SGLR into IMP" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" month: "April" abstract: "Integrated Development Environments (IDEs) increase productivity by providing a rich user interface and rapid feedback for a specific language. Creating an editor for a specific language is not a trivial undertaking, and is a cumbersome task even when working with an extensible framework such as Eclipse. A new IBM-guided effort, the IMP framework, relieves the IDE developer from a significant portion of the required work by providing various abstractions for this. For embedded languages, such as embedded regular expressions, SQL queries, or code generation templates, its LALR parser generator falls short, however. Scannerless parsing with SGLR enables concise, modular definition of such languages. In this paper, we present an integration of SGLR into IMP, demonstrating that a scannerless parser can be successfully integrated into an IDE. Given an SDF syntax definition, the sdf2imp tool automatically generates an editor plugin based on the IMP API, complete with syntax checking, syntax highlighting, outline view, and code folding. Using declarative domain-specific languages, these services can be customized, and using the IMP metatooling framework it can be extended with other features. " links: successor: "https://researchr.org/publication/KatsVisser2010" "spoofax homepage": "http://strategoxt.org/Spoofax" "pdf": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-006.pdf" tags: - "rule-based" - "Eclipse" - "syntax definition" - "completeness" - "SDF" - "SQL" - "C++" - "code generation" - "abstraction" - "Spoofax" - "Meta-Environment" - "parsing" - "scannerless parsing" - "extensible language" - "ASF+SDF" - "SGLR" - "query language" - "domain-specific language" researchr: "https://researchr.org/publication/KatsKV08" cites: 0 citedby: 1 booktitle: "LDTA" kind: "inproceedings" key: "KatsKV08" - title: "Stayin alert: moulding failure and exceptions to your needs" author: - name: "Anya Helene Bagge" link: "http://www.ii.uib.no/~anya/" - name: "Valentin David" link: "http://www.valentindavid.com/" - name: "Magne Haveraaen" link: "http://www.ii.uib.no/~magne/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" year: "2006" doi: "http://doi.acm.org/10.1145/1173706.1173747" links: doi: "http://doi.acm.org/10.1145/1173706.1173747" tags: - "exceptions" researchr: "https://researchr.org/publication/BaggeDHK06" cites: 0 citedby: 0 pages: "265-274" booktitle: "GPCE" kind: "inproceedings" key: "BaggeDHK06" - title: "Design of the CodeBoost Transformation System for Domain-Specific Optimisation of C++ Programs" author: - name: "Anya Helene Bagge" link: "http://www.ii.uib.no/~anya/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Magne Haveraaen" link: "http://www.ii.uib.no/~magne/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2003" doi: "https://doi.org/10.1109/SCAM.2003.1238032" abstract: "The use of a high-level, abstract coding style can greatly increase developer productivity. For numerical software, this can result in drastically reduced run-time performance. High-level, domain-specific optimisations can eliminate much of the overhead caused by an abstract coding style, but current compilers have poor support for domain-specific optimisation. In this paper we present CodeBoost, a source-to-source transformation tool for domain-specific optimisation of C++ programs. CodeBoost performs parsing, semantic analysis and pretty-printing, and transformations can be implemented either in the Stratego program transformation language, or as user-defined rewrite rules embedded within the C++ program. CodeBoost has been used with great success to optimise numerical applications written in the Sophus high-level coding style. We discuss the overall design of the CodeBoost transformation framework, and take a closer look at two important features of CodeBoost: user-defined rules and totem annotations. We also show briefly how CodeBoost is used to optimise Sophus code, resulting in applications that run twice as fast, or more." links: doi: "https://doi.org/10.1109/SCAM.2003.1238032" tags: - "programming languages" - "model-to-model transformation" - "rule-based" - "program analysis" - "application framework" - "graph transformation" - "CodeBoost" - "embedded software" - "Stratego/XT" - "transformation language" - "points-to analysis" - "domain analysis" - "analysis" - "language design" - "source-to-source" - "graph-rewriting" - "rules" - "C++" - "transformation system" - "compiler" - "model transformation" - "rewriting" - "parsing" - "design" - "open-source" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/BaggeKHV03" cites: 0 citedby: 0 pages: "65" booktitle: "SCAM" kind: "inproceedings" key: "BaggeKHV03" - title: "JAxT and JDI: the simplicity of junit applied to axioms and data invariants" author: - name: "Magne Haveraaen" link: "http://www.ii.uib.no/~magne/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" year: "2008" doi: "http://doi.acm.org/10.1145/1449814.1449834" links: doi: "http://doi.acm.org/10.1145/1449814.1449834" tags: - "data-flow" researchr: "https://researchr.org/publication/HaveraaenK08" cites: 0 citedby: 0 pages: "731-732" booktitle: "OOPSLA" kind: "inproceedings" key: "HaveraaenK08" - title: "Spoofax: An Interactive Development Environment for Program Transformation with Stratego/XT" author: - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2007" month: "March" links: "url": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-018.pdf" tags: - "model-to-model transformation" - "meta programming" - "meta-model" - "model-driven development" - "model transformation" - "Spoofax" - "Meta-Environment" - "meta-objects" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/KallebergV07" cites: 0 citedby: 0 booktitle: "Proceedings of the Seventh Workshop on Language Descriptions, Tools and Applications (LDTA 2007)" kind: "inproceedings" key: "KallebergV07" - title: "Stratego/XT 0.17. A language and toolset for program transformation" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Karl Trygve Kalleberg" link: "http://www.ii.uib.no/~karltk/" - name: "Rob Vermaas" link: "https://researchr.org/profile/robvermaas/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1016/j.scico.2007.11.003" abstract: "Stratego/XT is a language and toolset for program transformation. The Stratego language provides rewrite rules for expressing basic transformations, programmable rewriting strategies for controlling the application of rules, concrete syntax for expressing the patterns of rules in the syntax of the object language, and dynamic rewrite rules for expressing context-sensitive transformations, thus supporting the development of transformation components at a high level of abstraction. The XT toolset offers a collection of flexible, reusable transformation components, and tools for generating such components from declarative specifications. Complete program transformation systems are composed from these components." links: doi: "http://dx.doi.org/10.1016/j.scico.2007.11.003" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-011.pdf" "stratego/xt": "http://strategoxt.org" tags: - "control systems" - "programming languages" - "object-oriented programming" - "concrete object syntax" - "reusable components" - "rule-based" - "completeness" - "meta programming" - "pattern language" - "graph transformation" - "Stratego/XT" - "transformation language" - "reuse" - "graph-rewriting" - "rules" - "transformation system" - "DSL" - "programming" - "subject-oriented programming" - "context-aware" - "abstraction" - "Meta-Environment" - "rewriting" - "rewriting strategies" - "feature-oriented programming" - "concrete syntax" - "meta-objects" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/BravenboerKVV08" cites: 0 citedby: 7 journal: "SCP" volume: "72" number: "1-2" pages: "52-70" kind: "article" key: "BravenboerKVV08"