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: "Proceedings of the 2008 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES 08), Tucson, AZ, USA, June 12-13, 2008" editor: - name: "Krisztián Flautner" link: "https://researchr.org/alias/kriszti%C3%A1n-flautner" - name: "John Regehr" link: "https://researchr.org/alias/john-regehr" publisher: "ACM" isbn: "978-1-60558-104-0" 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: "Software Product Lines, 10th International Conference, SPLC 2006, Baltimore, Maryland, USA, August 21-24, 2006, Proceedings" publisher: "IEEE Computer Society" isbn: "0-7695-2599-7" 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: "ACM SIGSOFT Software Engineering Notes" 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: "Electronic Notes in Theoretical Computer Science" 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: "Software Language Engineering - Third International Conference, SLE 2010, Eindhoven, The Netherlands, October 12-13, 2010, Revised Selected Papers" editor: - name: "Brian A. Malloy" link: "https://researchr.org/alias/brian-a.-malloy" - name: "Steffen Staab" link: "https://researchr.org/alias/steffen-staab" - name: "Mark van den Brand" link: "https://researchr.org/alias/mark-van-den-brand" volume: "6563" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-19439-9" 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: "Proceedings of the 8th International Working Conference on Mining Software Repositories, MSR 2011 (Co-located with ICSE), Waikiki, Honolulu, HI, USA, May 21-28, 2011, Proceedings" editor: - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Tao Xie" link: "https://researchr.org/alias/tao-xie" - name: "Thomas Zimmermann" link: "https://researchr.org/alias/thomas-zimmermann" publisher: "IEEE" isbn: "978-1-4503-0574-7" 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: "Rewriting Logic and Its Applications - 8th International Workshop, WRLA 2010, Held as a Satellite Event of ETAPS 2010, Paphos, Cyprus, March 20-21, 2010, Revised Selected Papers" editor: - name: "Peter Csaba Ölveczky" link: "https://researchr.org/alias/peter-csaba-%C3%B6lveczky" volume: "6381" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-16309-8" 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: "Electronic Notes in Theoretical Computer Science" 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: "Electronic Notes in Theoretical Computer Science" 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: "Beyond Program Slicing, 06.11. - 11.11.2005" editor: - name: "David W. Binkley" link: "http://www.cs.loyola.edu/~binkley/" - name: "Mark Harman" link: "http://www.dcs.kcl.ac.uk/staff/mark/" - name: "Jens Krinke" link: "https://researchr.org/alias/jens-krinke" volume: "05451" series: "Dagstuhl Seminar Proceedings" publisher: "Internationales Begegnungs- und Forschungszentrum fuer Informatik (IBFI), Schloss Dagstuhl, Germany" 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: "Proceedings of the 2006 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation, 2006, Charleston, South Carolina, USA, January 9-10, 2006" editor: - name: "John Hatcliff" link: "http://people.cis.ksu.edu/~hatcliff/newweb/" - name: "Frank Tip" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/tip.index.html" publisher: "ACM" isbn: "1-59593-196-1" 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: "ACM 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: "Electronic Notes in Theoretical Computer Science" 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: "ACM Symposium on New Ideas in Programming and Reflections on Software, Onward! 2012, part of SPLASH '12, Tucson, AZ, USA, October 21-26, 2012" editor: - name: "Gary T. Leavens" link: "https://researchr.org/alias/gary-t.-leavens" - name: "Jonathan Edwards" link: "https://researchr.org/alias/jonathan-edwards" publisher: "ACM" isbn: "978-1-4503-1562-3" 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: "Proceedings of the Eight Workshop on Language Descriptions, Tools, and Applications" editor: - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Adrian Johnstone" link: "http://www.cs.rhul.ac.uk/~adrian/" volume: "238" number: "5" series: "Electronic Notes in Theoretical Computer Science " publisher: "Elsevier" 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: "Generative Programming and Component Engineering, 5th International Conference, GPCE 2006, Portland, Oregon, USA, October 22-26, 2006, Proceedings" editor: - name: "Stan Jarzabek" link: "https://researchr.org/alias/stan-jarzabek" - name: "Douglas C. Schmidt" link: "https://researchr.org/alias/douglas-c.-schmidt" - name: "Todd L. Veldhuizen" link: "https://researchr.org/alias/todd-l.-veldhuizen" publisher: "ACM" isbn: "1-59593-237-2" 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: "3rd IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2003), 26-27 September 2003, Amsterdam, The Netherlands" publisher: "IEEE Computer Society" isbn: "0-7695-2005-7" 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: "Companion to the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2008, October 19-13, 2007, Nashville, TN, USA" editor: - name: "Gail E. Harris" link: "https://researchr.org/alias/gail-e.-harris" publisher: "ACM" isbn: "978-1-60558-220-7" 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)" series: "Electronic Notes in Theoretical Computer Science" address: "Braga, Portugal" publisher: "Elsevier" 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: "Science of Computer Programming" volume: "72" number: "1-2" pages: "52-70" kind: "article" key: "BravenboerKVV08"