publications: - title: "Some Applications of the Theory of Dynamic Programming - A Review" author: - name: "Richard Bellman" link: "https://researchr.org/alias/richard-bellman" year: "1954" doi: "http://dx.doi.org/10.1287/opre.2.3.275" links: doi: "http://dx.doi.org/10.1287/opre.2.3.275" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/ior/Bellman54" researchr: "https://researchr.org/publication/Bellman54" cites: 0 citedby: 0 journal: "Operations Research" volume: "2" number: "3" pages: "275-288" kind: "article" key: "Bellman54" - title: "A Categorized Bibliography on Incremental Computation" author: - name: "Ganesan Ramalingam" link: "http://research.microsoft.com/en-us/um/people/grama/" - name: "Thomas W. Reps" link: "http://pages.cs.wisc.edu/~reps/" year: "1993" doi: "10.1145/158511.158710" tags: - "bibliography" - "incremental" researchr: "https://researchr.org/publication/RamalingamR93" cites: 0 citedby: 0 pages: "502-510" booktitle: "Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages" kind: "inproceedings" key: "RamalingamR93" - title: "A sound and optimal incremental build system with dynamic dependencies" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Moritz Lichter" link: "https://researchr.org/alias/moritz-lichter" - name: "Manuel Weiel" link: "https://researchr.org/alias/manuel-weiel" year: "2015" doi: "http://doi.acm.org/10.1145/2814270.2814316" links: doi: "http://doi.acm.org/10.1145/2814270.2814316" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/ErdwegLW15" researchr: "https://researchr.org/publication/ErdwegLW15" cites: 0 citedby: 1 pages: "89-106" booktitle: "Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications" editor: - name: "Jonathan Aldrich" link: "https://researchr.org/alias/jonathan-aldrich" - name: "Patrick Eugster" link: "https://researchr.org/alias/patrick-eugster" publisher: "ACM" isbn: "978-1-4503-3689-5" kind: "inproceedings" key: "ErdwegLW15" - title: "The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge" author: - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Markus Völter" link: "http://www.voelter.de/" - name: " Meinte Boersma" link: "https://researchr.org/alias/meinte-boersma" - name: "Remi Bosman" link: "https://researchr.org/alias/remi-bosman" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Albert Gerritsen" link: "https://researchr.org/alias/albert-gerritsen" - name: "Angelo Hulshout" link: "https://researchr.org/alias/angelo-hulshout" - name: "Steven Kelly" link: "https://researchr.org/alias/steven-kelly" - name: "Alex Loh" link: "https://researchr.org/alias/alex-loh" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Pedro J. Molina" link: "https://researchr.org/alias/pedro-j.-molina" - name: "Martin Palatnik" link: "https://researchr.org/alias/martin-palatnik" - name: "Risto Pohjonen" link: "https://researchr.org/alias/risto-pohjonen" - name: "Eugen Schindler" link: "https://researchr.org/alias/eugen-schindler" - name: "Klemens Schindler" link: "https://researchr.org/alias/klemens-schindler" - name: "Riccardo Solmi" link: "https://researchr.org/alias/riccardo-solmi" - name: "Vlad A. Vergu" link: "https://researchr.org/alias/vlad-a.-vergu" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Kevin van der Vlist" link: "https://researchr.org/alias/kevin-van-der-vlist" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Jimi van der Woning" link: "https://researchr.org/alias/jimi-van-der-woning" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_11" abstract: "Language workbenches are tools that provide high-level mechanisms for the implementation of (domain-specific) languages. Language workbenches are an active area of research that also receives many contributions from industry. To compare and discuss existing language workbenches, the annual Language Workbench Challenge was launched in 2011. Each year, participants are challenged to realize a given domain-specific language with their workbenches as a basis for discussion and comparison. In this paper, we describe the state of the art of language workbenches as observed in the previous editions of the Language Workbench Challenge. In particular, we capture the design space of language workbenches in a feature model and show where in this design space the participants of the 2013 Language Workbench Challenge reside. We compare these workbenches based on a DSL for questionnaires that was realized in all workbenches." links: doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_11" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/ErdwegSVBBCGHKLKMPPSSSVVVWW13" researchr: "https://researchr.org/publication/ErdwegSV13" cites: 0 citedby: 0 pages: "197-217" booktitle: "Software Language Engineering - 6th International Conference, SLE 2013, Indianapolis, IN, USA, October 26-28, 2013. Proceedings" editor: - name: "Martin Erwig" link: "https://researchr.org/alias/martin-erwig" - name: "Richard F. Paige" link: "https://researchr.org/alias/richard-f.-paige" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" volume: "8225" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-319-02653-4" kind: "inproceedings" key: "ErdwegSV13" - title: "Non-recursive make considered harmful: build systems at scale" author: - name: "Andrey Mokhov" link: "https://researchr.org/alias/andrey-mokhov" - name: "Neil Mitchell" link: "https://researchr.org/alias/neil-mitchell" - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" - name: "Simon Marlow" link: "https://researchr.org/alias/simon-marlow" year: "2016" doi: "http://doi.acm.org/10.1145/2976002.2976011" links: doi: "http://doi.acm.org/10.1145/2976002.2976011" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/haskell/MokhovMJM16" researchr: "https://researchr.org/publication/MokhovMJM16" cites: 0 citedby: 0 pages: "170-181" booktitle: "Proceedings of the 9th International Symposium on Haskell, Haskell 2016, Nara, Japan, September 22-23, 2016" editor: - name: "Geoffrey Mainland" link: "https://researchr.org/alias/geoffrey-mainland" publisher: "ACM" isbn: "978-1-4503-4434-0" kind: "inproceedings" key: "MokhovMJM16" - title: "Scalable incremental building with dynamic task dependencies" author: - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2018" doi: "https://doi.org/10.1145/3238147.3238196" abstract: "Incremental build systems are essential for fast, reproducible software builds. Incremental build systems enable short feedback cycles when they capture dependencies precisely and selectively execute build tasks efficiently. A much overlooked feature of build systems is the expressiveness of the scripting language, which directly influences the maintainability of build scripts. In this paper, we present a new incremental build algorithm that allows build engineers to use a full-fledged programming language with explicit task invocation, value and file inspection facilities, and conditional and iterative language constructs. In contrast to prior work on incrementality for such programmable builds, our algorithm scales with the number of tasks affected by a change and is independent of the size of the software project being built. Specifically, our algorithm accepts a set of changed files, transitively detects and re-executes affected build tasks, but also accounts for new task dependencies discovered during building. We have evaluated the performance of our algorithm in a real-world case study and confirm its scalability." links: doi: "https://doi.org/10.1145/3238147.3238196" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/kbse/KonatEV18" researchr: "https://researchr.org/publication/KonatEV18" cites: 0 citedby: 0 pages: "76-86" booktitle: "Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering" editor: - name: "Marianne Huchard" link: "https://researchr.org/alias/marianne-huchard" - name: "Christian Kästner" link: "https://researchr.org/alias/christian-k%C3%A4stner" - name: "Gordon Fraser" link: "https://researchr.org/alias/gordon-fraser" publisher: "ACM" kind: "inproceedings" key: "KonatEV18" - title: "The evolution of ANT build systems" author: - name: "Shane McIntosh" link: "https://researchr.org/alias/shane-mcintosh" - name: "Bram Adams" link: "http://www.bramadams.org/" - name: "Ahmed E. Hassan" link: "https://researchr.org/alias/ahmed-e.-hassan" year: "2010" doi: "http://dx.doi.org/10.1109/MSR.2010.5463341" links: doi: "http://dx.doi.org/10.1109/MSR.2010.5463341" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/msr/McIntoshAH10" tags: - "e-science" researchr: "https://researchr.org/publication/McIntoshAH10" cites: 0 citedby: 0 pages: "42-51" booktitle: "Proceedings of the 7th International Working Conference on Mining Software Repositories, MSR 2010 (Co-located with ICSE), Cape Town, South Africa, May 2-3, 2010, Proceedings" editor: - name: "Jim Whitehead" link: "https://researchr.org/alias/jim-whitehead" - name: "Thomas Zimmermann" link: "https://researchr.org/alias/thomas-zimmermann" publisher: "IEEE" isbn: "978-1-4244-6803-4" kind: "inproceedings" key: "McIntoshAH10" - title: "Shake before building: replacing make with haskell" author: - name: "Neil Mitchell" link: "https://researchr.org/alias/neil-mitchell" year: "2012" doi: "http://doi.acm.org/10.1145/2364527.2364538" links: doi: "http://doi.acm.org/10.1145/2364527.2364538" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icfp/Mitchell12" researchr: "https://researchr.org/publication/Mitchell12-3" cites: 0 citedby: 0 pages: "55-66" booktitle: "ACM SIGPLAN International Conference on Functional Programming, ICFP'12, Copenhagen, Denmark, September 9-15, 2012" editor: - name: "Peter Thiemann" link: "https://researchr.org/alias/peter-thiemann" - name: "Robby Bruce Findler" link: "https://researchr.org/alias/robby-bruce-findler" publisher: "ACM" isbn: "978-1-4503-1054-3" kind: "inproceedings" key: "Mitchell12-3" - title: "PIE: A Domain-Specific Language for Interactive Software Development Pipelines" author: - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Michael J. Steindorfer" link: "http://michael.steindorfer.name" - name: "Sebastian Erdweg" link: "http://www.informatik.uni-marburg.de/~seba/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2018" doi: "https://doi.org/10.22152/programming-journal.org/2018/2/9" abstract: "Context. Software development pipelines are used for automating essential parts of software engineering processes, such as build automation and continuous integration testing. In particular, interactive pipelines, which process events in a live environment such as an IDE, require timely results for low-latency feedback, and persistence to retain low-latency feedback between restarts. Inquiry. Developing an incrementalized and persistent version of a pipeline is one way to reduce feedback latency, but requires implementation of dependency tracking, cache invalidation, and other complicated and error-prone techniques. Therefore, interactivity complicates pipeline development if timeliness and persistence become responsibilities of the pipeline programmer, rather than being supported by the underlying system. Systems for programming incremental and persistent pipelines exist, but do not focus on ease of development, requiring a high degree of boilerplate, increasing development and maintenance effort. Approach. We develop Pipelines for Interactive Environments (PIE), a Domain-Specific Language (DSL), API, and runtime for developing interactive software development pipelines, where ease of development is a focus. The PIE DSL is a statically typed and lexically scoped language. PIE programs are compiled to programs implementing the API, which the PIE runtime executes in an incremental and persistent way. Knowledge. PIE provides a straightforward programming model that enables direct and concise expression of pipelines without boilerplate, reducing the development and maintenance effort of pipelines. Compiled pipeline programs can be embedded into interactive environments such as code editors and IDEs, enabling timely feedback at a low cost. Grounding. Compared to the state of the art, PIE reduces the code required to express an interactive pipeline by a factor of 6 in a case study on syntax-aware editors. Furthermore, we evaluate PIE in two case studies of complex interactive software development scenarios, demonstrating that PIE can handle complex interactive pipelines in a straightforward and concise way. Importance. Interactive pipelines are complicated software artifacts that power many important systems such as continuous feedback cycles in IDEs and code editors, and live language development in language workbenches. New pipelines, and evolution of existing pipelines, is frequently necessary. Therefore, a system for easily developing and maintaining interactive pipelines, such as PIE, is important." links: doi: "https://doi.org/10.22152/programming-journal.org/2018/2/9" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/programming/KonatSEV18" researchr: "https://researchr.org/publication/KonatSEV18" cites: 0 citedby: 0 journal: "Programming Journal" volume: "2" number: "3" pages: "9" kind: "article" key: "KonatSEV18" - title: "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I" author: - name: "John McCarthy" link: "https://researchr.org/alias/john-mccarthy" year: "1960" doi: "http://doi.acm.org/10.1145/367177.367199" links: doi: "http://doi.acm.org/10.1145/367177.367199" researchr: "https://researchr.org/publication/McCarthy60" cites: 0 citedby: 0 journal: "Communications of the ACM" volume: "3" number: "4" pages: "184-195" kind: "article" key: "McCarthy60" - title: "Incremental computation with names" author: - name: "Matthew A. Hammer" link: "https://researchr.org/alias/matthew-a.-hammer" - name: "Joshua Dunfield" link: "https://researchr.org/alias/joshua-dunfield" - name: "Kyle Headley" link: "https://researchr.org/alias/kyle-headley" - name: "Nicholas Labich" link: "https://researchr.org/alias/nicholas-labich" - name: "Jeffrey S. Foster" link: "https://researchr.org/alias/jeffrey-s.-foster" - name: "Michael W. Hicks" link: "https://researchr.org/alias/michael-w.-hicks" - name: "David Van Horn" link: "https://researchr.org/alias/david-van-horn" year: "2015" doi: "http://doi.acm.org/10.1145/2814270.2814305" links: doi: "http://doi.acm.org/10.1145/2814270.2814305" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/HammerDHLFHH15" researchr: "https://researchr.org/publication/HammerDHLFHH15" cites: 0 citedby: 0 pages: "748-766" booktitle: "Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications" editor: - name: "Jonathan Aldrich" link: "https://researchr.org/alias/jonathan-aldrich" - name: "Patrick Eugster" link: "https://researchr.org/alias/patrick-eugster" publisher: "ACM" isbn: "978-1-4503-3689-5" kind: "inproceedings" key: "HammerDHLFHH15" - title: "The Spoofax language workbench: rules for declarative specification of languages and IDEs" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "https://doi.org/10.1145/1869459.1869497" abstract: "Spoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. Spoofax integrates language processing techniques for parser generation, meta-programming, and IDE development into a single environment. It uses concise, declarative specifications for languages and IDE services. In this paper we describe the architecture of Spoofax and introduce idioms for high-level specifications of language semantics using rewrite rules, showing how analyses can be reused for transformations, code generation, and editor services such as error marking, reference resolving, and content completion. The implementation of these services is supported by language-parametric editor service classes that can be dynamically loaded by the Eclipse IDE, allowing new languages to be developed and used side-by-side in the same Eclipse environment." links: doi: "https://doi.org/10.1145/1869459.1869497" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/KatsV10" "acm dl": "https://doi.org/10.1145/1932682.1869497" tags: - "programming languages" - "model-to-model transformation" - "workbench" - "semantics" - "rule-based" - "Eclipse" - "meta programming" - "model editor" - "graph transformation" - "meta-model" - "transformation language" - "architecture" - "reuse" - "model-driven development" - "graph-rewriting" - "rules" - "C++" - "code completion" - "code generation" - "model transformation" - "programming" - "language workbench" - "Spoofax" - "Meta-Environment" - "rewriting" - "parsing" - "meta-objects" - "transformation" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/KatsV10" cites: 0 citedby: 2 pages: "444-463" booktitle: "Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010, October 17-21, 2010, Reno/Tahoe, Nevada, USA" editor: - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" - name: "Siobhán Clarke" link: "https://www.cs.tcd.ie/Siobhan.Clarke/" - name: "Martin C. Rinard" link: "https://researchr.org/alias/martin-c.-rinard" address: "Reno/Tahoe, Nevada" publisher: "ACM" isbn: "978-1-4503-0203-6" kind: "inproceedings" key: "KatsV10" - title: "Build systems à la carte" author: - name: "Andrey Mokhov" link: "https://researchr.org/alias/andrey-mokhov" - name: "Neil Mitchell" link: "https://researchr.org/alias/neil-mitchell" - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" year: "2018" month: "7" doi: "https://doi.org/10.1145/3236774" links: doi: "https://doi.org/10.1145/3236774" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/pacmpl/MokhovMJ18" researchr: "https://researchr.org/publication/MokhovMJ18" cites: 0 citedby: 0 journal: "Proceedings of the ACM on Programming Languages" volume: "2" number: "ICFP" kind: "article" key: "MokhovMJ18" - title: "Graphviz - Open Source Graph Drawing Tools" author: - name: "John Ellson" link: "https://researchr.org/alias/john-ellson" - name: "Emden R. Gansner" link: "https://researchr.org/alias/emden-r.-gansner" - name: "Eleftherios Koutsofios" link: "https://researchr.org/alias/eleftherios-koutsofios" - name: "Stephen C. North" link: "https://researchr.org/alias/stephen-c.-north" - name: "Gordon Woodhull" link: "https://researchr.org/alias/gordon-woodhull" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2265/22650483.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2265/22650483.htm" tags: - "source-to-source" - "graph-rewriting" - "C++" - "rewriting" - "open-source" researchr: "https://researchr.org/publication/EllsonGKNW00" cites: 0 citedby: 0 pages: "483-484" booktitle: "Graph Drawing, 9th International Symposium, GD 2001 Vienna, Austria, September 23-26, 2001, Revised Papers" editor: - name: "Petra Mutzel" link: "https://researchr.org/alias/petra-mutzel" - name: "Michael Jünger" link: "https://researchr.org/alias/michael-j%C3%BCnger" - name: "Sebastian Leipert" link: "https://researchr.org/alias/sebastian-leipert" volume: "2265" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-43309-0" kind: "inproceedings" key: "EllsonGKNW00" - title: "A comprehensive study of view maintenance approaches in data warehousing evolution" author: - name: "Hemant K. Jain" link: "https://researchr.org/alias/hemant-k.-jain" - name: "Anjana Gosain" link: "https://researchr.org/alias/anjana-gosain" year: "2012" doi: "http://doi.acm.org/10.1145/2347696.2347705" links: doi: "http://doi.acm.org/10.1145/2347696.2347705" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/sigsoft/JainG12" researchr: "https://researchr.org/publication/JainG12" cites: 0 citedby: 0 journal: "ACM SIGSOFT Software Engineering Notes" volume: "37" number: "5" pages: "1-8" kind: "article" key: "JainG12" - title: "Adapton: composable, demand-driven incremental computation" author: - name: "Matthew A. Hammer" link: "https://researchr.org/alias/matthew-a.-hammer" - name: "Yit Phang Khoo" link: "https://researchr.org/alias/yit-phang-khoo" - name: "Michael Hicks" link: "https://researchr.org/alias/michael-hicks" - name: "Jeffrey S. Foster" link: "https://researchr.org/alias/jeffrey-s.-foster" year: "2014" doi: "http://doi.acm.org/10.1145/2594291.2594324" links: doi: "http://doi.acm.org/10.1145/2594291.2594324" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/HammerKHF14" researchr: "https://researchr.org/publication/HammerKHF14" cites: 0 citedby: 0 pages: "18" booktitle: "ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '14, Edinburgh, United Kingdom - June 09 - 11, 2014" editor: - name: "Michael F. P. O'Boyle" link: "https://researchr.org/alias/michael-f.-p.-o%27boyle" - name: "Keshav Pingali" link: "https://researchr.org/alias/keshav-pingali" publisher: "ACM" isbn: "978-1-4503-2784-8" kind: "inproceedings" key: "HammerKHF14"