publications: - title: "Grammar Engineering Support for Precedence Rule Recovery and Compatibility Checking" author: - name: "Eric Bouwers" link: "http://www.st.ewi.tudelft.nl/~bouwers/main/" - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.046" abstract: "A wide range of parser generators are used to generate parsers for programming languages. The grammar formalisms that come with parser generators provide different approaches for defining operator precedence. Some generators (e.g. YACC) support precedence declarations, others require the grammar to be unambiguous, thus encoding the precedence rules. Even if the grammar formalism provides precedence rules, a particular grammar might not use it. The result is grammar variants implementing the same language. For the C language, the GNU Compiler uses YACC with precedence rules, the C-Transformers uses SDF without priorities, while the SDF library does use priorities. For PHP, Zend uses YACC with precedence rules, whereas PHP-front uses SDF with priority and associativity declarations. The variance between grammars raises the question if the precedence rules of one grammar are compatible with those of another. This is usually not obvious, since some languages have complex precedence rules. Also, for some parser generators the semantics of precedence rules is defined operationally, which makes it hard to reason about their effect on the defined language. We present a method and tool for comparing the precedence rules of different grammars and parser generators. Although it is undecidable whether two grammars define the same language, this tool provides support for comparing and recovering precedence rules, which is especially useful for reliable migration of a grammar from one grammar formalism to another. We evaluate our method by the application to non-trivial mainstream programming languages, such as PHP and C." links: doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.046" tags: - "programming languages" - "semantics" - "rule-based" - "syntax definition" - "YACC" - "precedence rule" - "SDF" - "Stratego/XT" - "language engineering" - "grammar engineering" - "PHP" - "rules" - "C++" - "migration" - "compiler" - "programming" - "operational semantics" - "priority" - "parsing" - "scannerless parsing" - "systematic-approach" - "ASF+SDF" - "grammar" - "Stratego" researchr: "https://researchr.org/publication/BouwersBV08" cites: 0 citedby: 1 journal: "Electronic Notes in Theoretical Computer Science" volume: "203" number: "2" pages: "85-101" kind: "article" key: "BouwersBV08" - title: "Criteria for the evaluation of implemented architectures" author: - name: "Eric Bouwers" link: "http://www.st.ewi.tudelft.nl/~bouwers/main/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" year: "2009" doi: "http://dx.doi.org/10.1109/ICSM.2009.5306330" abstract: "Software architecture evaluation methods aim at identifying potential maintainability problems for a given architecture. Several of these methods exist, which typically prescribe the structure of the evaluation process. Often left implicit, however, are the concrete system attributes that need to be studied in order to assess the maintainability of implemented architectures. To determine this set of attributes, we have performed an empirical study on over 40 commercial architectural evaluations conducted during the past two years as part of a systematic Software Risk Assessment. We present this study and we explain how the identified attributes can be projected on various architectural system properties, which provides an overview of criteria for the evaluation of the maintainability of implemented software architectures." links: doi: "http://dx.doi.org/10.1109/ICSM.2009.5306330" tags: - "empirical" - "software architecture" - "architecture" - "systematic-approach" researchr: "https://researchr.org/publication/BouwersVD09" cites: 0 citedby: 0 pages: "73-82" booktitle: "25th IEEE International Conference on Software Maintenance (ICSM 2009), September 20-26, 2009, Edmonton, Alberta, Canada" publisher: "IEEE" kind: "inproceedings" key: "BouwersVD09" - title: "A Cognitive Model for Software Architecture Complexity" author: - name: "Eric Bouwers" link: "http://www.st.ewi.tudelft.nl/~bouwers/main/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Carola Lilienthal" link: "https://researchr.org/alias/carola-lilienthal" - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" year: "2010" doi: "http://doi.ieeecomputersociety.org/10.1109/ICPC.2010.28" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ICPC.2010.28" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/iwpc/BouwersVLD10" tags: - "software architecture" - "architecture" researchr: "https://researchr.org/publication/BouwersVLD10" cites: 0 citedby: 0 pages: "152-155" booktitle: "The 18th IEEE International Conference on Program Comprehension, ICPC 2010, Braga, Minho, Portugal, June 30-July 2, 2010" publisher: "IEEE Computer Society" isbn: "978-0-7695-4113-6" kind: "inproceedings" key: "BouwersVLD10"