publications: - title: "A Case of Visitor versus Interpreter Pattern" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" abstract: "We compare the Visitor pattern with the Interpreter pattern, investigating a single case in point for the Java language. We have produced and compared two versions of an interpreter for a programming language. The first version makes use of the Visitor pattern. The second version was obtained by using an automated refactoring to transform uses of the Visitor pattern to uses of the Interpreter pattern. We compare these two nearly equivalent versions on their maintenance character- istics and execution efficiency. Using a tailored experimental research method we can highlight differences and the causes thereof. The contributions of this paper are that it isolates the choice between Visitor and Interpreter in a realistic software project and makes the difference experimentally observable." tags: - "programming languages" - "Java" - "pattern language" - "interpreter" - "refactoring" - "visitor" - "maintenance" - "programming" researchr: "https://researchr.org/publication/HillsKlintVinju2011" cites: 0 citedby: 0 booktitle: "Proceedings of the 49th International Conference on Objects, Models, Components and Patterns" kind: "inproceedings" key: "HillsKlintVinju2011" - title: "Rascal: From Algebraic Specification to Meta-Programming" author: - name: "Jeroen van den Bos" link: "http://jvdb.org/" - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" tags: - "meta programming" - "meta-model" - "algebraic specification" - " algebra" - "programming" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/ammse11" cites: 0 citedby: 0 pages: "15-32" booktitle: "Proceedings Second International Workshop on Algebraic Methods in Model-based Software Engineering (AMMSE), Zurich, Switzerland, June 30, 2011" kind: "inproceedings" key: "ammse11" - title: "Program Analysis Scenarios in Rascal" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-34005-5_2" links: doi: "http://dx.doi.org/10.1007/978-3-642-34005-5_2" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/wrla/HillsKV12" researchr: "https://researchr.org/publication/HillsKV12-0" cites: 0 citedby: 0 pages: "10-30" booktitle: "WRLA" kind: "inproceedings" key: "HillsKV12-0" - title: "RLSRunner: Linking Rascal with K for Program Analysis" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_19" links: doi: "http://dx.doi.org/10.1007/978-3-642-28830-2_19" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/HillsKV11" researchr: "https://researchr.org/publication/HillsKV11" cites: 0 citedby: 0 pages: "344-353" booktitle: "SLE" kind: "inproceedings" key: "HillsKV11" - title: "Meta-language Support for Type-Safe Access to External Resources" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_21" links: doi: "http://dx.doi.org/10.1007/978-3-642-36089-3_21" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/HillsKV12" researchr: "https://researchr.org/publication/HillsKV12" cites: 0 citedby: 0 pages: "372-391" booktitle: "SLE" kind: "inproceedings" key: "HillsKV12" - title: "Scripting a refactoring with Rascal and Eclipse" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2012" doi: "http://doi.acm.org/10.1145/2328876.2328882" links: doi: "http://doi.acm.org/10.1145/2328876.2328882" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icse/HillsKV12" researchr: "https://researchr.org/publication/HillsKV12-1" cites: 0 citedby: 0 pages: "40-49" booktitle: "ICSE" kind: "inproceedings" key: "HillsKV12-1" - title: "Static, lightweight includes resolution for PHP" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2014" doi: "http://doi.acm.org/10.1145/2642937.2643017" links: doi: "http://doi.acm.org/10.1145/2642937.2643017" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/kbse/HillsKV14" researchr: "https://researchr.org/publication/HillsKV14" cites: 0 citedby: 0 pages: "503-514" booktitle: "ASE" kind: "inproceedings" key: "HillsKV14" - title: "An empirical study of PHP feature usage: a static analysis perspective" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2013" doi: "http://doi.acm.org/10.1145/2483760.2483786" links: doi: "http://doi.acm.org/10.1145/2483760.2483786" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/issta/HillsKV13" researchr: "https://researchr.org/publication/HillsKV13" cites: 0 citedby: 0 pages: "325-335" booktitle: "ISSTA" kind: "inproceedings" key: "HillsKV13" - title: "A One-Stop-Shop for Software Evolution Tool Construction" author: - name: "Mark Hills" link: "http://homepages.cwi.nl/~hills" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Tijs van der Storm" link: "http://homepages.cwi.nl/~storm/" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2012" doi: "http://ercim-news.ercim.eu/en88/special/a-one-stop-shop-for-software-evolution-tool-construction" links: doi: "http://ercim-news.ercim.eu/en88/special/a-one-stop-shop-for-software-evolution-tool-construction" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/ercim/HillsKSV12" researchr: "https://researchr.org/publication/HillsKSV12" cites: 0 citedby: 0 journal: "ercim" volume: "2012" number: "88" kind: "article" key: "HillsKSV12"