publications: - title: "Integrated symbol table, engine and heap memory management in multi-engine prolog" author: - name: "Paul Tarau" link: "https://researchr.org/alias/paul-tarau" year: "2011" doi: "http://doi.acm.org/10.1145/1993478.1993497" links: doi: "http://doi.acm.org/10.1145/1993478.1993497" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/iwmm/Tarau11" tags: - "Prolog" - "memory management" researchr: "https://researchr.org/publication/Tarau11" cites: 0 citedby: 0 pages: "129-138" booktitle: "Proceedings of the 10th International Symposium on Memory Management, ISMM 2011, San Jose, CA, USA, June 04 - 05, 2011" editor: - name: "Hans-Juergen Boehm" link: "https://researchr.org/alias/hans-juergen-boehm" - name: "David F. Bacon" link: "https://researchr.org/alias/david-f.-bacon" publisher: "ACM" isbn: "978-1-4503-0263-0" kind: "inproceedings" key: "Tarau11" - title: "Developing Efficient Interpreters Based on Formal Language Specifications" author: - name: "Arnd Poetzsch-Heffter" link: "https://researchr.org/alias/arnd-poetzsch-heffter" year: "1994" tags: - "rule-based" - "interpreter" researchr: "https://researchr.org/publication/Poetzsch-Heffter94%3A0" cites: 0 citedby: 0 pages: "233-247" booktitle: "Compiler Construction, 5th International Conference, CC 94, Edinburgh, U.K., April 7-9, 1994, Proceedings" editor: - name: "Peter Fritzson" link: "https://researchr.org/alias/peter-fritzson" volume: "786" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-57877-3" kind: "inproceedings" key: "Poetzsch-Heffter94:0" - title: "Programming Language Specification and Prototyping Using the MAX System" author: - name: "Arnd Poetzsch-Heffter" link: "https://researchr.org/alias/arnd-poetzsch-heffter" year: "1993" tags: - "programming languages" - "programming" researchr: "https://researchr.org/publication/Poetzsch-Heffter93" cites: 0 citedby: 0 pages: "137-150" booktitle: "Programming Language Implementation and Logic Programming, 5th International Symposium, PLILP 93, Tallinn, Estonia, August 25-27, 1993, Proceedings" editor: - name: "Maurice Bruynooghe" link: "https://researchr.org/alias/maurice-bruynooghe" - name: "Jaan Penjam" link: "https://researchr.org/alias/jaan-penjam" volume: "714" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-57186-8" kind: "inproceedings" key: "Poetzsch-Heffter93" - title: "Modularity and Reusability in Attribute Grammars" author: - name: "Uwe Kastens" link: "https://researchr.org/alias/uwe-kastens" - name: "William M. Waite" link: "https://researchr.org/alias/william-m.-waite" year: "1994" doi: "http://portal.acm.org/citation.cfm?id=191491" links: doi: "http://portal.acm.org/citation.cfm?id=191491" tags: - "attribute grammars" - "reuse" - "grammar" researchr: "https://researchr.org/publication/KastensW94" cites: 0 citedby: 1 journal: "Acta Informatica" volume: "31" number: "7" pages: "601-627" kind: "article" key: "KastensW94" - title: "Efficient annotated terms" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "H. A. de Jong" link: "https://researchr.org/alias/h.-a.-de-jong" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Pieter A. Olivier" link: "https://researchr.org/alias/pieter-a.-olivier" year: "2000" doi: "https://doi.org/10.1002/(SICI)1097-024X(200003)30:3\\%3C259::AID-SPE298\\%3E3.0.CO;2-Y" abstract: "How do distributed applications exchange (tree-like) data structures? To this end, we introduce the abstract data type of Annotated Terms (ATerms) and discuss their design, implementation and application. A comprehensive procedural interface enables creation and manipulation of ATerms in C. A Java version is also supported. The ATerm implementation is based on maximal subterm sharing and automatic garbage collection. A binary exchange format for the concise representation of ATerms (sharing preserved) allows the fast exchange of ATerms between applications. In a typical application---parse trees which contain quite some redundant information---less than 2 bytes are needed to represent a node in memory, and less than 2 bits are needed to represent it in binary format. It is shown that the implementation of ATerms scales up to the manipulation of ATerms in the giga-byte range." links: doi: "https://doi.org/10.1002/(SICI)1097-024X(200003)30:3\\%3C259::AID-SPE298\\%3E3.0.CO;2-Y" tags: - "rule-based" - "Java" - "parsing" researchr: "https://researchr.org/publication/BrandJKO00" cites: 0 citedby: 1 journal: "Software: Practice and Experience" volume: "30" number: "3" pages: "259-291" kind: "article" key: "BrandJKO00" - title: "Visualizing the symbol table" author: - name: "Jaime Urquiza-Fuentes" link: "https://researchr.org/alias/jaime-urquiza-fuentes" - name: "Micael Gallego-Carrillo" link: "https://researchr.org/alias/micael-gallego-carrillo" - name: "Francisco Gortázar-Bellas" link: "https://researchr.org/alias/francisco-gort%C3%A1zar-bellas" - name: "J. Ángel Velázquez-Iturbide" link: "https://researchr.org/alias/j.-%C3%A1ngel-vel%C3%A1zquez-iturbide" year: "2006" doi: "http://doi.acm.org/10.1145/1140124.1140249" links: doi: "http://doi.acm.org/10.1145/1140124.1140249" researchr: "https://researchr.org/publication/Urquiza-FuentesGGV06" cites: 0 citedby: 0 pages: "341" booktitle: "Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, ITiCSE 2006, Bologna, Italy, June 26-28, 2006" editor: - name: "Renzo Davoli" link: "https://researchr.org/alias/renzo-davoli" - name: "Michael Goldweber" link: "https://researchr.org/alias/michael-goldweber" - name: "Paola Salomoni" link: "https://researchr.org/alias/paola-salomoni" publisher: "ACM" isbn: "1-59593-055-8" kind: "inproceedings" key: "Urquiza-FuentesGGV06" - title: "Scope Dominance with Generalized Quantifiers" author: - name: "Gilad Ben-Avi" link: "https://researchr.org/alias/gilad-ben-avi" - name: "Yoad Winter" link: "https://researchr.org/alias/yoad-winter" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-01748-3_3" links: doi: "http://dx.doi.org/10.1007/978-3-642-01748-3_3" researchr: "https://researchr.org/publication/Ben-AviW09" cites: 0 citedby: 0 pages: "36-44" booktitle: "Languages: From Formal to Natural, Essays Dedicated to Nissim Francez on the Occasion of His 65th Birthday" editor: - name: "Orna Grumberg" link: "https://researchr.org/alias/orna-grumberg" - name: "Michael Kaminski" link: "https://researchr.org/alias/michael-kaminski" - name: "Shmuel Katz" link: "https://researchr.org/alias/shmuel-katz" - name: "Shuly Wintner" link: "https://researchr.org/alias/shuly-wintner" volume: "5533" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-01747-6" kind: "inproceedings" key: "Ben-AviW09" - title: "VL-Eli: A Generator for Visual Languages - System Demonstration" author: - name: "Uwe Kastens" link: "https://researchr.org/alias/uwe-kastens" - name: "Carsten Schmidt" link: "https://researchr.org/alias/carsten-schmidt" year: "2002" doi: "http://www.elsevier.com/gej-ng/31/29/23/117/52/show/Products/notes/index.htt#012" links: doi: "http://www.elsevier.com/gej-ng/31/29/23/117/52/show/Products/notes/index.htt#012" researchr: "https://researchr.org/publication/KastensS02" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "65" number: "3" pages: "139-143" kind: "article" key: "KastensS02" - title: "Identifiers and static name abstraction" author: - name: "Mark B. Wells" link: "https://researchr.org/alias/mark-b.-wells" year: "1990" doi: "http://doi.acm.org/10.1145/382080.382628" links: doi: "http://doi.acm.org/10.1145/382080.382628" tags: - "abstraction" researchr: "https://researchr.org/publication/Wells90%3A1" cites: 0 citedby: 0 journal: "SIGPLAN Notices" volume: "25" number: "5" pages: "25-28" kind: "article" key: "Wells90:1" - title: "Static Name Control for FreshML" author: - name: "François Pottier" link: "https://researchr.org/alias/fran%C3%A7ois-pottier" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/LICS.2007.44" links: doi: "http://doi.ieeecomputersociety.org/10.1109/LICS.2007.44" researchr: "https://researchr.org/publication/Pottier07%3A0" cites: 0 citedby: 0 pages: "356-365" booktitle: "22nd IEEE Symposium on Logic in Computer Science (LICS 2007), 10-12 July 2007, Wroclaw, Poland, Proceedings" publisher: "IEEE Computer Society" kind: "inproceedings" key: "Pottier07:0" - title: "Scoped Dynamic Rewrite Rules" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2001" doi: "https://doi.org/10.1016/S1571-0661(04)00298-1" abstract: "The applicability of term rewriting to program transformation is limited by the lack of control over rule application and by the context-free nature of rewrite rules. The first problem is addressed by languages supporting user-definable rewriting strate- gies. This paper addresses the second problem by extending rewriting strategies with scoped dynamic rewrite rules. Dynamic rules are generated at run-time and can access variables available from their definition context. Rules generated within a rule scope are automatically retracted at the end of that scope. The technique is illustrated by means of several program tranformations: bound variable renaming, function inlining, and dead function elimination. " links: doi: "https://doi.org/10.1016/S1571-0661(04)00298-1" successor: "https://researchr.org/publication/BravenboerDOV06" tags: - "programming languages" - "rule-based" - "graph transformation" - "dynamic rewrite rules" - "Stratego/XT" - "transformation language" - "term rewriting" - "graph-rewriting" - "rules" - "context-aware" - "access control" - "rewriting" - "role-based access control" - "rewriting strategies" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/Visser01-DR" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "59" number: "4" pages: "375-396" kind: "article" key: "Visser01-DR" - title: "A Symbol Table Abstraction to Implement Languages with Explicit Scope Control" author: - name: "Robert P. Cook" link: "https://researchr.org/alias/robert-p.-cook" - name: "Thomas J. LeBlanc" link: "https://researchr.org/alias/thomas-j.-leblanc" year: "1983" abstract: "We are concerned with languages in which the programmer has explicit control over the referencing environment of a name. Several modern programming languages, including Ada, Euclid, Mesa, and Modula, implement these control capabilities. This paper describes a simple technique which uses the traditional concepts of a hashed symbol table and lexical level to solve many of the symbol table implementation problems associated with explicit scope control. The primary ad-vantage of this technique is that a single symbol table abstraction can be used to simply and efficiently solve most problems in scope control." tags: - "programming languages" - "Modula" - "meta programming" - "meta-model" - "programming" - "abstraction" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/CookL83" cites: 0 citedby: 0 journal: "IEEE Trans. Software Eng." volume: "9" number: "1" pages: "8-12" kind: "article" key: "CookL83" - title: "Lem: A Lightweight Tool for Heavyweight Semantics" author: - name: "Scott Owens" link: "https://researchr.org/alias/scott-owens" - name: "Peter Böhm" link: "https://researchr.org/alias/peter-b%C3%B6hm" - name: "Francesco Zappa Nardelli" link: "https://researchr.org/alias/francesco-zappa-nardelli" - name: "Peter Sewell" link: "https://researchr.org/alias/peter-sewell" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-22863-6_27" links: doi: "http://dx.doi.org/10.1007/978-3-642-22863-6_27" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/itp/OwensBNS11" tags: - "semantics" researchr: "https://researchr.org/publication/OwensBNS11" cites: 0 citedby: 0 pages: "363-369" booktitle: "Interactive Theorem Proving - Second International Conference, ITP 2011, Berg en Dal, The Netherlands, August 22-25, 2011. Proceedings" editor: - name: "Marko C. J. D. van Eekelen" link: "https://researchr.org/alias/marko-c.-j.-d.-van-eekelen" - name: "Herman Geuvers" link: "https://researchr.org/alias/herman-geuvers" - name: "Julien Schmaltz" link: "https://researchr.org/alias/julien-schmaltz" - name: "Freek Wiedijk" link: "https://researchr.org/alias/freek-wiedijk" volume: "6898" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-22862-9" kind: "inproceedings" key: "OwensBNS11" - title: "The JastAdd system - modular extensible compiler construction" author: - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2007" doi: "http://dx.doi.org/10.1016/j.scico.2007.02.003" links: doi: "http://dx.doi.org/10.1016/j.scico.2007.02.003" tags: - "compiler" - "JastAdd" researchr: "https://researchr.org/publication/EkmanH07SCP" cites: 0 citedby: 0 journal: "Science of Computer Programming" volume: "69" number: "1-3" pages: "14-26" kind: "article" key: "EkmanH07SCP" - title: "Tutorials and Documentation for Xtext 2.0" year: "2011" tags: - "Xtext" researchr: "https://researchr.org/publication/xtext" cites: 0 citedby: 0 howpublished: "\\url{http://www.eclipse.org/Xtext/documentation/}" kind: "misc" key: "xtext" - title: "Program Compilers" author: - name: "Anthony M. Sloane" link: "http://www.comp.mq.edu.au/~asloane" year: "2008" doi: "http://dx.doi.org/10.1002/9780470050118.ecse559" abstract: "Program compilers implement translations from the high-level language world of programmers to the low-level world of hardware. A compiler reads program text written in a source language and translates it into an equivalent program written in a different target language. A standard pipeline architecture for compiler construction consists of lexical analysis, syntax analysis, semantic analysis, translation and code generation phases, with optional optimisation phases interspersed. Support for the phases is provided by a symbol table containing properties of program entities. Some compiler phases can be automatically generated from formal specifications." links: doi: "http://dx.doi.org/10.1002/9780470050118.ecse559" tags: - "programming languages" - "program analysis" - "translation" - "lexical syntax" - "architecture" - "points-to analysis" - "analysis" - "source-to-source" - "code generation" - "compiler" - "programming" - "open-source" researchr: "https://researchr.org/publication/reference-wiley-Sloane08" cites: 0 citedby: 0 booktitle: "Wiley Encyclopedia of Computer Science and Engineering" editor: - name: "Benjamin W. Wah" link: "https://researchr.org/alias/benjamin-w.-wah" publisher: "John Wiley & Sons, Inc." kind: "incollection" key: "reference-wiley-Sloane08" - title: "Polarized Name Passing" author: - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" year: "1995" researchr: "https://researchr.org/publication/Odersky95" cites: 0 citedby: 0 pages: "324-337" booktitle: "Foundations of Software Technology and Theoretical Computer Science, 15th Conference, Bangalore, India, December 18-20, 1995, Proceedings" editor: - name: "P. S. Thiagarajan" link: "https://researchr.org/alias/p.-s.-thiagarajan" volume: "1026" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-60692-0" kind: "inproceedings" key: "Odersky95" - title: "Silver: An extensible attribute grammar system" author: - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" - name: "Derek Bodin" link: "https://researchr.org/alias/derek-bodin" - name: "Jimin Gao" link: "https://researchr.org/alias/jimin-gao" - name: "Lijesh Krishnan" link: "https://researchr.org/alias/lijesh-krishnan" year: "2010" doi: "http://dx.doi.org/10.1016/j.scico.2009.07.004" links: doi: "http://dx.doi.org/10.1016/j.scico.2009.07.004" tags: - "attribute grammars" - "grammar" researchr: "https://researchr.org/publication/WykBGK10" cites: 0 citedby: 0 journal: "Science of Computer Programming" volume: "75" number: "1-2" pages: "39-54" kind: "article" key: "WykBGK10" - title: "VisiCola, a model and a language for visibility control in programming languages" author: - name: "Michael A. Klug" link: "https://researchr.org/alias/michael-a.-klug" year: "1991" doi: "http://doi.acm.org/10.1145/122179.122185" links: doi: "http://doi.acm.org/10.1145/122179.122185" tags: - "programming languages" - "modeling language" - "language modeling" - "programming" researchr: "https://researchr.org/publication/Klug91" cites: 0 citedby: 0 journal: "SIGPLAN Notices" volume: "26" number: "2" pages: "51-63" kind: "article" key: "Klug91" - title: "Formalising and Verifying Reference Attribute Grammars in Coq" author: - name: "Max Schäfer" link: "http://www.comlab.ox.ac.uk/people/Max.Schaefer/" - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-00590-9_11" links: doi: "http://dx.doi.org/10.1007/978-3-642-00590-9_11" tags: - "attribute grammars" - "reference attribute grammars" - "grammar" researchr: "https://researchr.org/publication/SchaferEM09" cites: 0 citedby: 0 pages: "143-159" booktitle: "Programming Languages and Systems, 18th European Symposium on Programming, ESOP 2009, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009, York, UK, March 22-29, 2009. Proceedings" editor: - name: "Giuseppe Castagna" link: "https://researchr.org/alias/giuseppe-castagna" volume: "5502" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-00589-3" kind: "inproceedings" key: "SchaferEM09" - title: "Hashed symbol tables for languages with explicit scope control" author: - name: "Susan L. Graham" link: "https://researchr.org/alias/susan-l.-graham" - name: "William N. Joy" link: "https://researchr.org/alias/william-n.-joy" - name: "Olivier Roubine" link: "https://researchr.org/alias/olivier-roubine" year: "1979" doi: "http://doi.acm.org/10.1145/800229.806953" abstract: "Newer programming languages such as Modula and Euclid provide more control than traditional Algol-like languages such as ALGOL-60 and Pascal over the inheritance, in inner scopes, of named entities available in outer scopes. They also provide mechanisms whereby chosen entities from inner scopes may be made available to outer scopes. In this paper we show how a hashed symbol table can be organized to implement these new scope rules in a time and space efficient way." links: doi: "http://doi.acm.org/10.1145/800229.806953" tags: - "programming languages" - "rule-based" - "Modula" - "rules" - "programming" - "Pascal" researchr: "https://researchr.org/publication/GrahamJR79" cites: 0 citedby: 0 pages: "50-57" booktitle: "Proceedings of the 1979 SIGPLAN Symposium on Compiler Construction, Denver, Colorado, USA, August 6-10, 1979" publisher: "ACM" kind: "inproceedings" key: "GrahamJR79" - title: "Quality of Name Resolution in the Domain Name System" author: - name: "Casey T. Deccio" link: "https://researchr.org/alias/casey-t.-deccio" - name: "Chao-Chih Chen" link: "https://researchr.org/alias/chao-chih-chen" - name: "Jeff Sedayao" link: "https://researchr.org/alias/jeff-sedayao" - name: "Krishna Kant" link: "https://researchr.org/alias/krishna-kant" - name: "Prasant Mohapatra" link: "https://researchr.org/alias/prasant-mohapatra" year: "2009" doi: "http://dx.doi.org/10.1109/ICNP.2009.5339693" links: doi: "http://dx.doi.org/10.1109/ICNP.2009.5339693" researchr: "https://researchr.org/publication/DeccioCSKM09" cites: 0 citedby: 0 pages: "113-122" booktitle: "Proceedings of the 17th annual IEEE International Conference on Network Protocols, 2009. ICNP 2009, Princeton, NJ, USA, 13-16 October 2009" editor: - name: "Henning Schulzrinne" link: "https://researchr.org/alias/henning-schulzrinne" - name: "K. K. Ramakrishnan" link: "https://researchr.org/alias/k.-k.-ramakrishnan" - name: "Timothy G. Griffin" link: "https://researchr.org/alias/timothy-g.-griffin" - name: "Srikanth V. Krishnamurthy" link: "https://researchr.org/alias/srikanth-v.-krishnamurthy" publisher: "IEEE Computer Society" isbn: "978-1-4244-4634-6" kind: "inproceedings" key: "DeccioCSKM09" - title: "Java Virtual Machine" author: - name: "Jon Meyer" link: "https://researchr.org/alias/jon-meyer" - name: "Troy Downing" link: "https://researchr.org/alias/troy-downing" year: "1997" tags: - "Java" researchr: "https://researchr.org/publication/MeyerD97" cites: 0 citedby: 0 publisher: "O Reilly" isbn: "1-56592-194-1" kind: "book" key: "MeyerD97" - title: "Ruler: Programming Type Rules" author: - name: "Atze Dijkstra" link: "https://researchr.org/alias/atze-dijkstra" - name: "S. Doaitse Swierstra" link: "http://www.cs.uu.nl/staff/doaitse.html" year: "2006" doi: "http://dx.doi.org/10.1007/11737414_4" abstract: "Some type systems are first described formally, to be sometimes followed by an implementation. Other type systems are first implemented as language extensions, to be sometimes retrofitted with a formal description. In neither case it is an easy task to keep both artefacts consistent. In this paper we introduce Ruler, a domain specific language for describing type rules. Type rules can be incrementally described, thus providing a means for building complex type systems on top of simpler ones. Besides checking well-formedness of Ruler programs we use them to generate (1) a visual LATEX rendering, suitable for use in the presentation of formal aspects, and (2) an attribute grammar based implementation. Combining these two aspects in Ruler contributes to bridging the gap between theory and practice: mutually consistent representations can be generated for use in both theoretical and practical settings." links: doi: "http://dx.doi.org/10.1007/11737414_4" tags: - "programming languages" - "rule-based" - "attribute grammars" - "type system" - "rules" - "type checking" - "programming" - "type theory" - "incremental" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/DijkstraS06" cites: 0 citedby: 0 pages: "30-46" booktitle: "Functional and Logic Programming, 8th International Symposium, FLOPS 2006, Fuji-Susono, Japan, April 24-26, 2006, Proceedings" editor: - name: "Masami Hagiya" link: "https://researchr.org/alias/masami-hagiya" - name: "Philip Wadler" link: "http://homepages.inf.ed.ac.uk/wadler/" volume: "3945" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-33438-6" kind: "inproceedings" key: "DijkstraS06" - title: "An Abstract Data Type for Name Analysis" author: - name: "Uwe Kastens" link: "https://researchr.org/alias/uwe-kastens" - name: "William M. Waite" link: "https://researchr.org/alias/william-m.-waite" year: "1991" tags: - "analysis" - "data-flow" - "data-flow analysis" researchr: "https://researchr.org/publication/KastensW91" cites: 0 citedby: 0 journal: "Acta Informatica" volume: "28" number: "6" pages: "539-558" kind: "article" key: "KastensW91" - title: "Rewritable Reference Attributed Grammars" author: - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3086&spage=144" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3086&spage=144" tags: - "attribute grammars" - "reference attribute grammars" - "graph-rewriting" - "rewriting" - "grammar" researchr: "https://researchr.org/publication/EkmanH04" cites: 0 citedby: 3 pages: "144-169" booktitle: "ECOOP 2004 - Object-Oriented Programming, 18th European Conference, Oslo, Norway, June 14-18, 2004, Proceedings" editor: - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" volume: "3086" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-22159-X" kind: "inproceedings" key: "EkmanH04" - title: "Human Usable Textual Notation Specification" year: "2004" researchr: "https://researchr.org/publication/HUTN" cites: 0 citedby: 0 organization: "Object Management Group" kind: "manual" key: "HUTN" - title: "Designing a reusable symbol table library" author: - name: "Pei-Chi Wu" link: "https://researchr.org/alias/pei-chi-wu" - name: "Jin-Hue Lin" link: "https://researchr.org/alias/jin-hue-lin" - name: "Feng-Jian Wang" link: "https://researchr.org/alias/feng-jian-wang" year: "1994" month: "aug" doi: "10.1109/TENCON.1994.369182" abstract: "Presents the design of a symbol table library and addresses its design rationale. A symbol-processing task can be divided into two parts: one for storing/retrieving symbols, and the other for semantic checking. The former is language-independent and can be defined in terms of reusable components. The latter is language-dependent and can be defined in terms of parametric types of symbol table components or as specific semantic rules. We identify general properties of name analysis problems: topology, overload, navigation, etc. The resulting design of the library covers most usages in symbol processing" tags: - "reusable components" - "rule-based" - "domain analysis" - "analysis" - "language design" - "reuse" - "rules" - "type checking" - "design" - "domain-specific language" researchr: "https://researchr.org/publication/369182" cites: 0 citedby: 0 booktitle: "TENCON '94. IEEE Region 10's Ninth Annual International Conference. Theme: Frontiers of Computer Technology. Proceedings of 1994" kind: "inproceedings" key: "369182" - title: "A framework for typed HOAS and semantics" author: - name: "Marino Miculan" link: "https://researchr.org/alias/marino-miculan" - name: "Ivan Scagnetto" link: "https://researchr.org/alias/ivan-scagnetto" year: "2003" doi: "http://doi.acm.org/10.1145/888251.888269" links: doi: "http://doi.acm.org/10.1145/888251.888269" tags: - "semantics" researchr: "https://researchr.org/publication/MiculanS03" cites: 0 citedby: 0 pages: "184-194" booktitle: "Proceedings of the 5th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, 27-29 August 2003, Uppsala, Sweden" publisher: "ACM" isbn: "1-58113-705-2" kind: "inproceedings" key: "MiculanS03" - title: "The JastAdd extensible Java compiler" author: - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2007" doi: "http://doi.acm.org/10.1145/1297027.1297029" abstract: "The JastAdd Extensible Java Compiler is a high quality Java compiler that is easy to extend in order to build static analysis tools for Java, and to extend Java with new language constructs. It is built modularly, with a Java 1.4 compiler that is extended to a Java 5 compiler. Example applications that are built as extensions include an alternative backend that generates Jimple, an extension of Java with AspectJ constructs, and the implementation of a pluggable type system for non-null checking and inferenc. The system is implemented using JastAdd, a declarative Java-like language. We describe the compiler architecture, the major design ideas for building and extending the compiler, in particular, for dealing with complex extensions that affect name and type analysis. Our extensible compiler compares very favorably concerning quality, speed and size with other extensible Java compiler frameworks. It also compares favorably in quality and size compared with traditional non-extensible Java compilers, and it runs within a factor of three compared to javac." links: doi: "http://doi.acm.org/10.1145/1297027.1297029" tags: - "AspectJ" - "Java" - "application framework" - "architecture" - "analysis" - "language design" - "static analysis" - "type system" - "extensible compiler" - "type checking" - "compiler" - "JastAdd" - "design" - "extensible language" researchr: "https://researchr.org/publication/EkmanH07" cites: 0 citedby: 3 pages: "1-18" booktitle: "Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007, October 21-25, 2007, Montreal, Quebec, Canada" editor: - name: "Richard P. Gabriel" link: "http://www.dreamsongs.com/RPG.html" - name: "David F. Bacon" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/bacon.index.html" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Guy L. Steele Jr." link: "http://research.sun.com/people/mybio.php?uid=25706" publisher: "ACM" isbn: "978-1-59593-786-5" kind: "inproceedings" key: "EkmanH07" - title: "A Fresh Calculus for Name Management" author: - name: "Davide Ancona" link: "https://researchr.org/alias/davide-ancona" - name: "Eugenio Moggi" link: "https://researchr.org/alias/eugenio-moggi" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3286&spage=206" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3286&spage=206" researchr: "https://researchr.org/publication/AnconaM04%3A0" cites: 0 citedby: 0 pages: "206-224" booktitle: "Generative Programming and Component Engineering: Third International Conference, GPCE 2004, Vancouver, Canada, October 24-28, 2004. Proceedings" editor: - name: "Gabor Karsai" link: "http://w3.isis.vanderbilt.edu/gabor/" - name: "Eelco Visser" link: "http://eelcovisser.org" volume: "3286" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-23580-9" kind: "inproceedings" key: "AnconaM04:0" - title: "Standard ECMA-334 C# Language Specification, 4th edition" year: "2006" links: "pdf": "http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf" tags: - "C++" researchr: "https://researchr.org/publication/CSharpSpec2006" cites: 0 citedby: 0 kind: "misc" key: "CSharpSpec2006" - title: "Grammatical Framework" author: - name: "Aarne Ranta" link: "https://researchr.org/alias/aarne-ranta" year: "2004" doi: "http://dx.doi.org/10.1017/S0956796803004738" links: doi: "http://dx.doi.org/10.1017/S0956796803004738" researchr: "https://researchr.org/publication/Ranta04" cites: 0 citedby: 0 journal: "Journal of Functional Programming" volume: "14" number: "2" pages: "145-189" kind: "article" key: "Ranta04" - title: "Towards a Classification of Visibility Rules" author: - name: "Michael A. Klug" link: "https://researchr.org/alias/michael-a.-klug" year: "1996" tags: - "rule-based" - "classification" - "rules" researchr: "https://researchr.org/publication/Klug96" cites: 0 citedby: 0 journal: "SIGPLAN Notices" volume: "31" number: "1" pages: "44-50" kind: "article" key: "Klug96" - title: "Modeling and Implementation of Visibility in Programming Languages" author: - name: "Garrison, Phillip Edward" link: "https://researchr.org/alias/garrison%2C-phillip-edward" year: "1987" month: "Dec" abstract: "The term visibility control refers to the use of names in programming languages. A binding of a name and an entity results from a declaration. A binding is visible where the name can be used to reference the entity. The visibility rules of a language define how names may be used in that language, how to determine which declaration is denoted by a reference anywhere in a program, and the meaning of multiple declarations of the same name.

Existing approaches to modeling visibility rules are not powerful enough to model the wide variety of visibility features present in modern programming languages. The Inheritance Graph Model, presented in this dissertation, is a natural and general model of visibility that embodies the fundamental concepts of visibility. Because the Inheritance Graph Model is based on fundamental concepts, it is easy to represent the visibility structure of a wide variety of languages and visibility features in a straightforward manner. These fundamental concepts were developed on the basis of a comprehensive survey and analysis of the visibility features used in programming languages.

The visibility structure of a program is represented by an inheritance graph. A vertex in the graph represents a uniform referencing environment (a contour). Multiple visibility classes can be used to explicitly represent different kinds of visibility in the graph. An edge in the graph represents inheritance of visibility of bindings with a specific visibility class from one vertex to another. Inheritance of visibility of bindings via an edge can be restricted depending on attributes of each binding or on the program construct represented by the edge. A general mechanism for detecting errors and specifying shadowing of bindings declared in enclosing scopes is also provided. An implementation based on data flow analysis techniques can be generated automatically from a specification of the inheritance graph for a language.

The study of visibility features and their precise meanings exposed several subtle complexities in the visibility rules of popular languages. Among these is the requirement in Pascal that a declaration precede all references to the declaration. This requirement provides few benefits, and results in visibility rules that are difficult to understand, specify, and implement correctly." links: "url": "http://www.eecs.berkeley.edu/Pubs/TechRpts/1987/5871.html" tags: - "programming languages" - "rule-based" - "program analysis" - "meta programming" - "data-flow language" - "meta-model" - "modeling language" - "modeling" - "term rewriting" - "language modeling" - "domain analysis" - "analysis" - "data-flow programming" - "data-flow" - "graph-rewriting" - "survey" - "rules" - "programming" - "Meta-Environment" - "rewriting" - "data-flow analysis" - "Pascal" - "systematic-approach" - "domain-specific language" researchr: "https://researchr.org/publication/Garrison-CSD-88-400" cites: 0 citedby: 0 school: "EECS Department, University of California, Berkeley" advisor: - name: "Susan L. Graham" link: "https://researchr.org/alias/susan-l.-graham" kind: "phdthesis" key: "Garrison-CSD-88-400" - title: "Typical: Taking the Tedium Out of Typing" author: - name: "Robert Grimm" link: "http://www.cs.nyu.edu/rgrimm/" - name: " Laune Harris" link: "https://researchr.org/alias/laune-harris" - name: "Anh Le" link: "https://researchr.org/alias/anh-le" year: "2007" month: "November" abstract: "The implementation of real-world type checkers requires a nontrivial engineering effort. The resulting code easily comprises thousands of lines, which increases the probability of software defects in a component critical to compiler correctness. To make type checkers easier to implement and extend, this paper presents Typi- cal, a domain-specific language and compiler that directly and concisely captures the structure of type systems. Our language builds on the functional core for ML to represent syntax trees and types as variants and to traverse them with pattern matches. It then adds declarative constructs for common type checker concerns, such as scoping rules, namespaces, and constraints on types. It also integrates error checking and reporting with other constructs to promote comprehensive error management. We have validated our system with two real-world type checkers written in Typical, one for Typical itself and the other for C." tags: - "rule-based" - "pattern language" - "software components" - "traversal" - "language engineering" - "software language engineering" - "software component" - "constraints" - "type system" - "software engineering" - "rules" - "C++" - "type checking" - "compiler" - "domain-specific language" researchr: "https://researchr.org/publication/GrimmHarrisLe2007" cites: 0 citedby: 0 institution: "New York University" type: "NYU CS Technical Report " number: "TR2007-904" address: "New York" kind: "techreport" key: "GrimmHarrisLe2007" - title: "ELI: A Complete, Flexible Compiler Construction System" author: - name: "Robert W. Gray" link: "https://researchr.org/alias/robert-w.-gray" - name: "Steven P. Levi" link: "https://researchr.org/alias/steven-p.-levi" - name: "Vincent P. Heuring" link: "https://researchr.org/alias/vincent-p.-heuring" - name: "Anthony M. Sloane" link: "http://www.comp.mq.edu.au/~asloane" - name: "William M. Waite" link: "https://researchr.org/alias/william-m.-waite" year: "1992" tags: - "completeness" - "compiler" researchr: "https://researchr.org/publication/GrayLHSW92" cites: 0 citedby: 1 journal: "Communications of the ACM" volume: "35" number: "2" pages: "121-130" kind: "article" key: "GrayLHSW92" - title: "Defining Context-Dependent Syntax Without Using Contexts" author: - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" year: "1993" doi: "http://doi.acm.org/10.1145/169683.174159" links: doi: "http://doi.acm.org/10.1145/169683.174159" tags: - "context-aware" researchr: "https://researchr.org/publication/Odersky93" cites: 0 citedby: 0 journal: "ACM Transactions on Programming Languages and Systems" volume: "15" number: "3" pages: "535-562" kind: "article" key: "Odersky93" - title: "Flexible Symbol Table Structures for Compiling C++" author: - name: "Stephen C. Dewhurst" link: "https://researchr.org/alias/stephen-c.-dewhurst" year: "1987" tags: - "C++" - "compiler" researchr: "https://researchr.org/publication/Dewhurst87-1" cites: 0 citedby: 0 journal: "Software: Practice and Experience" volume: "17" number: "8" pages: "503-512" kind: "article" key: "Dewhurst87-1" - title: "Logic-Based Specification of Visibility Rules" author: - name: "Arnd Poetzsch-Heffter" link: "https://researchr.org/alias/arnd-poetzsch-heffter" year: "1991" tags: - "rule-based" - "rules" - "logic" researchr: "https://researchr.org/publication/Poetzsch-Heffter91" cites: 0 citedby: 0 pages: "63-74" booktitle: "PLILP" kind: "inproceedings" key: "Poetzsch-Heffter91" - title: "Extensible syntax with lexical scoping" author: - name: "Luca Cardelli" link: "http://lucacardelli.name" - name: "Florian Matthes" link: "https://researchr.org/alias/florian-matthes" - name: "Martín Abadi" link: "https://researchr.org/alias/mart%C3%ADn-abadi" year: "1994" month: "February" doi: "http://lucacardelli.name/Papers/SRC-121.ps" abstract: "A frequent dilemma in programming language design is the choice between a language with a rich set of notations and a small simple core language. We address this dilemma by proposing extensible grammars, a syntax definition formalism for incremental language extensions and restrictions. The translation of programs written in rich object languages into a small core language is defined via syntax-directed patterns. In contrast to macro- expansion and program-rewriting tools, our extensible grammars respect scoping rules. Therefore, we can introduce binding constructs while avoiding problems with unwanted name clashes. We develop extensible grammars and illustrate their use by extending the lambda calculus with let-bindings conditionals and constructs from database programming languages, such as SQL query expressions. We then give a formal description of the underlying rules for parsing transformation and substitution Finally, we sketch how these rules are exploited in an implementation of a generic, extensible parser package." links: doi: "http://lucacardelli.name/Papers/SRC-121.ps" "cardelli's papers": "http://lucacardelli.name/indexPapers.html" tags: - "programming languages" - "object-oriented programming" - "rule-based" - "translation" - "syntax definition" - "meta programming" - "pattern language" - "generic programming" - "lexical syntax" - "graph transformation" - "graph query" - "SQL" - "extensible grammar" - "transformation language" - "language design" - "macros" - "graph-rewriting" - "rules" - "programming" - "subject-oriented programming" - "database" - "Meta-Environment" - "rewriting" - "parsing" - "incremental" - "design" - "extensible language" - "feature-oriented programming" - "meta-objects" - "transformation" - "grammar" - "query language" - "program transformation" researchr: "https://researchr.org/publication/CardelliMA94" cites: 0 citedby: 1 institution: "Digital Equipment Corporation Systems Research Center" type: "SRC Research Report" number: "121" kind: "techreport" key: "CardelliMA94" - title: "Program Transformation with Scoped Dynamic Rewrite Rules" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Arthur van Dam" link: "https://researchr.org/profile/arthurvandam/publications" - name: "Karina Olmos" link: "https://researchr.org/profile/karinaolmos/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2006" doi: "https://content.iospress.com/articles/fundamenta-informaticae/fi69-1-2-06" abstract: "The applicability of term rewriting to program transformation is limited by the lack of control over rule application and by the context-free nature of rewrite rules. The first problem is addressed by languages supporting user-definable rewriting strategies. The second problem is addressed by the extension of rewriting strategies with scoped dynamic rewrite rules. Dynamic rules are defined at run-time and can access variables available from their definition context. Rules defined within a rule scope are automatically retracted at the end of that scope. In this paper, we explore the design space of dynamic rules, and their application to transformation problems. The technique is formally defined by extending the operational semantics underlying the program transformation language Stratego, and illustrated by means of several program transformations in Stratego, including constant propagation, bound variable renaming, dead code elimination, function inlining, and function specialization. " links: doi: "https://content.iospress.com/articles/fundamenta-informaticae/fi69-1-2-06" "technical report": "http://www.cs.uu.nl/research/techreps/UU-CS-2005-005.html" tags: - "programming languages" - "semantics" - "rule-based" - "formal semantics" - "graph transformation" - "dynamic rewrite rules" - "Stratego/XT" - "transformation language" - "term rewriting" - "language design" - "graph-rewriting" - "rules" - "operational semantics" - "context-aware" - "access control" - "rewriting" - "design" - "role-based access control" - "rewriting strategies" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/BravenboerDOV06" cites: 0 citedby: 4 journal: "Fundamenta Informaticae" volume: "69" number: "1-2" pages: "123-178" kind: "article" key: "BravenboerDOV06" - title: "The Eli System" author: - name: "Uwe Kastens" link: "https://researchr.org/alias/uwe-kastens" - name: "Peter Pfahler" link: "https://researchr.org/alias/peter-pfahler" - name: "Matthias T. Jung" link: "https://researchr.org/alias/matthias-t.-jung" year: "1998" researchr: "https://researchr.org/publication/KastensPJ98" cites: 0 citedby: 0 pages: "294-297" booktitle: "Compiler Construction, 7th International Conference, CC 98, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 98, Lisbon, Portugal, March 28 - April 4, 1998, Proceedings" editor: - name: "Kai Koskimies" link: "https://researchr.org/alias/kai-koskimies" volume: "1383" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-64304-4" kind: "inproceedings" key: "KastensPJ98" - title: "Prototyping Realistic Programming Languages Based on Formal Specifications" author: - name: "Arnd Poetzsch-Heffter" link: "https://researchr.org/alias/arnd-poetzsch-heffter" year: "1997" doi: "http://link.springer.de/link/service/journals/00236/bibs/7034010/70340737.htm" links: doi: "http://link.springer.de/link/service/journals/00236/bibs/7034010/70340737.htm" tags: - "programming languages" - "rule-based" - "programming" researchr: "https://researchr.org/publication/Poetzsch-Heffter97" cites: 0 citedby: 0 journal: "Acta Informatica" volume: "34" number: "10" pages: "737-772" kind: "article" key: "Poetzsch-Heffter97" - title: "A Symbol Table with Scope Recognition for the B-6500" author: - name: "Henry J. Bowlden" link: "https://researchr.org/alias/henry-j.-bowlden" year: "1970" researchr: "https://researchr.org/publication/Bowlden70" cites: 0 citedby: 0 pages: "1-19" booktitle: "ALGOL 68 Implementation: Proceedings of the IFIP Working Conference on ALGOL 68 Implementation, Munich, Germany, July 20-24, 1970" editor: - name: "J. E. L. Peck" link: "https://researchr.org/alias/j.-e.-l.-peck" publisher: "North-Holland" isbn: "0-7204-2045-8" kind: "inproceedings" key: "Bowlden70" - title: "Basic operations of the VisiCola scope model" author: - name: "Michael A. Klug" link: "https://researchr.org/alias/michael-a.-klug" year: "1994" doi: "http://doi.acm.org/10.1145/185009.185018" links: doi: "http://doi.acm.org/10.1145/185009.185018" tags: - "meta-model" - "Meta-Environment" researchr: "https://researchr.org/publication/Klug94" cites: 0 citedby: 0 journal: "SIGPLAN Notices" volume: "29" number: "9" pages: "44-50" kind: "article" key: "Klug94" - title: "The design and implementation of an APL dialect, ELI" author: - name: "Wai-Mee Ching" link: "https://researchr.org/alias/wai-mee-ching" year: "2000" doi: "http://doi.acm.org/10.1145/570475.570485" links: doi: "http://doi.acm.org/10.1145/570475.570485" tags: - "design" researchr: "https://researchr.org/publication/Ching00" cites: 0 citedby: 0 pages: "69-76" booktitle: "Proceedings of the APL-Berlin-2000 Conference: Think Arrays in a Great City, APL 2000, Berlin, Germany, July 24-27, 2000" editor: - name: "Dieter Lattermann" link: "https://researchr.org/alias/dieter-lattermann" - name: "Dieter Kilsch" link: "https://researchr.org/alias/dieter-kilsch" publisher: "ACM" isbn: "1-58113-182-8" kind: "inproceedings" key: "Ching00" - 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" - title: "Semantics of Context-Free Languages" author: - name: "Donald E. Knuth" link: "https://researchr.org/alias/donald-e.-knuth" year: "1968" doi: "http://www.springerlink.com/content/m2501m07m4666813/" abstract: "\"Meaning\" may be assigned to a string in a context-free language by defining attributes of the symbols in a derivation tree for that string. The attributes can be defined by functions associated with each production in the grammar. This paper examines the implications of this process when some of the attributes are synthesized, i.e., defined solely in terms of attributes of thedescendants of the corresponding nonterminal symbol, while other attributes are inherited, i.e., defined in terms of attributes of theancestors of the nonterminal symbol. An algorithm is given which detects when such semantic rules could possibly lead to circular definition of some attributes. An example is given of a simple programming language defined with both inherited and synthesized attributes, and the method of definition is compared to other techniques for formal specification of semantics which have appeared in the literature." links: doi: "http://www.springerlink.com/content/m2501m07m4666813/" tags: - "programming languages" - "semantics" - "rule-based" - "attribute grammars" - "formal semantics" - "context free languages" - "rules" - "e-science" - "programming" - "context-aware" - "grammar" researchr: "https://researchr.org/publication/Knuth68" cites: 0 citedby: 1 journal: "Theory Comput. Syst." volume: "2" number: "2" pages: "127-145" kind: "article" key: "Knuth68" - title: "Strong Normalization for System F by HOAS on Top of FOAS" author: - name: "Andrei Popescu" link: "https://researchr.org/alias/andrei-popescu" - name: "Elsa L. Gunter" link: "https://researchr.org/alias/elsa-l.-gunter" - name: "Christopher J. Osborn" link: "https://researchr.org/alias/christopher-j.-osborn" year: "2010" doi: "http://doi.ieeecomputersociety.org/10.1109/LICS.2010.48" links: doi: "http://doi.ieeecomputersociety.org/10.1109/LICS.2010.48" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/lics/PopescuGO10" researchr: "https://researchr.org/publication/PopescuGO10" cites: 0 citedby: 0 pages: "31-40" booktitle: "Proceedings of the 25th Annual IEEE Symposium on Logic in Computer Science, LICS 2010, 11-14 July 2010, Edinburgh, United Kingdom" publisher: "IEEE Computer Society" isbn: "978-0-7695-4114-3" kind: "inproceedings" key: "PopescuGO10" - title: "An overview of the K semantic framework" author: - name: "Grigore Rosu" link: "http://fsl.cs.uiuc.edu/~grosu/" - name: "Traian-Florin Serbanuta" link: "https://researchr.org/alias/traian-florin-serbanuta" year: "2010" doi: "http://dx.doi.org/10.1016/j.jlap.2010.03.012" abstract: "K is an executable semantic framework in which programming languages, calculi, as well as type systems or formal analysis tools can be defined, making use of configurations, omputations and rules. Configurations organize the system/program state in units called cells, which are labeled and can be nested. Computations carry \"computational meaning\" as special nested list structures sequentializing computational tasks, such as fragments of program; in particular, computations extend the original language or calculus syntax. K (rewrite) rules generalize conventional rewrite rules by making explicit which parts of the term they read, write, or do not care about. This distinction makes K a suitable framework for defining truly concurrent languages or calculi, even in the presence of sharing. Since computations can be handled like any other terms in a rewriting environment, that is, they can be matched, moved from one place to another in the original term, modified, or even deleted, K is particularly suitable for defining control-intensive language features such as abrupt termination, exceptions, or call/cc. This paper gives an overview of the K framework: what it is, how it can be used, and where it has been used so far. It also proposes and discusses the K definition of CHALLENGE, a programming language that aims to challenge and expose the limitations of existing semantic frameworks." links: doi: "http://dx.doi.org/10.1016/j.jlap.2010.03.012" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/jlp/RosuS10" researchr: "https://researchr.org/publication/RosuS10" cites: 0 citedby: 0 journal: "Journal of Logic and Algebraic Programming" volume: "79" number: "6" pages: "397-434" kind: "article" key: "RosuS10" - title: "oAW xText: A framework for textual DSLs" author: - name: "Sven Efftinge" link: "https://researchr.org/alias/sven-efftinge" - name: "Markus Völter" link: "http://www.voelter.de/" year: "2006" tags: - "DSL" researchr: "https://researchr.org/publication/EfftingeVoelter2006" cites: 0 citedby: 1 booktitle: "Workshop on Modeling Symposium at Eclipse Summit" kind: "inproceedings" key: "EfftingeVoelter2006" - title: "Design of a Reusable Symbol Table Abstraction" author: - name: "Peter Schnorf" link: "https://researchr.org/alias/peter-schnorf" year: "1991" tags: - "reuse" - "abstraction" - "design" researchr: "https://researchr.org/publication/Schnorf91" cites: 0 citedby: 0 journal: "Software - Concepts and Tools" volume: "12" number: "2" pages: "63-74" kind: "article" key: "Schnorf91" - title: "Typing Haskell with an Attribute Grammar" author: - name: "Atze Dijkstra" link: "https://researchr.org/alias/atze-dijkstra" - name: "S. Doaitse Swierstra" link: "http://www.cs.uu.nl/staff/doaitse.html" year: "2004" doi: "http://dx.doi.org/10.1007/11546382_1" links: doi: "http://dx.doi.org/10.1007/11546382_1" tags: - "attribute grammars" - "Haskell" - "grammar" researchr: "https://researchr.org/publication/DijkstraS04" cites: 0 citedby: 0 pages: "1-72" booktitle: "Advanced Functional Programming, 5th International School, AFP 2004, Tartu, Estonia, August 14-21, 2004, Revised Lectures" editor: - name: "Varmo Vene" link: "https://researchr.org/alias/varmo-vene" - name: "Tarmo Uustalu" link: "https://researchr.org/alias/tarmo-uustalu" volume: "3622" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-28540-7" kind: "inproceedings" key: "DijkstraS04" - title: "Symbol spotting in vectorized technical drawings through a lookup table of region strings" author: - name: "Marçal Rusiñol" link: "https://researchr.org/alias/mar%C3%A7al-rusi%C3%B1ol" - name: "Josep Lladós" link: "https://researchr.org/alias/josep-llad%C3%B3s" - name: "Gemma Sánchez" link: "https://researchr.org/alias/gemma-s%C3%A1nchez" year: "2010" doi: "http://dx.doi.org/10.1007/s10044-009-0161-2" links: doi: "http://dx.doi.org/10.1007/s10044-009-0161-2" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/paa/RusinolLS10" researchr: "https://researchr.org/publication/RusinolLS10" cites: 0 citedby: 0 journal: "Pattern Anal. Appl." volume: "13" number: "3" pages: "321-331" kind: "article" key: "RusinolLS10" - title: "Another Solution of Scoping Problems in Symbol Tables" author: - name: "Werner Aßmann" link: "https://researchr.org/alias/werner-a%C3%9Fmann" year: "1992" abstract: "The central task of symbol table administration is identification of all identifiers used in the source program under consideration of visibility rules varying between the different programming languages. Usually this problem is handled by a hash search of the identifier and an additional decision about the visibility of this identifier in the current program region (\"scoping problem\"). The most used solution for the scoping problem is scope-dependent switching of hash links in such a way that only such identifier indeed visible in this region are reachable by the hashing process. The new approach handles the scoping problem by visibility sets defined for every program region, and additionally by overload resolution tables for multiple used identifier names. The result is constant decision time for the scoping problem (at latest) after the first access to an identifier in a program region. The algorithm is very simple so that the access time is not only (nearly) constant but also very small. The approach permits an efficient solution of all the scoping problems of contemporary programming languages such as MODULA-2, C, or Fonran90." tags: - "programming languages" - "rule-based" - "source-to-source" - "rules" - "C++" - "programming" - "search" - "systematic-approach" - "open-source" researchr: "https://researchr.org/publication/Assmann92%3A0" cites: 0 citedby: 0 pages: "66-71" booktitle: "Compiler Construction, 4th International Conference on Compiler Construction, CC 92, Paderborn, Germany, October 5-7, 1992, Proceedings" editor: - name: "Uwe Kastens" link: "https://researchr.org/alias/uwe-kastens" - name: "Peter Pfahler" link: "https://researchr.org/alias/peter-pfahler" volume: "641" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-55984-1" kind: "inproceedings" key: "Assmann92:0" - title: "Reference Attribute Grammars for Metamodel Semantics" author: - name: "Christoff Bürger" link: "https://researchr.org/alias/christoff-b%C3%BCrger" - name: "Sven Karol" link: "https://researchr.org/alias/sven-karol" - name: "Christian Wende" link: "https://researchr.org/alias/christian-wende" - name: "Uwe Aßmann" link: "https://researchr.org/alias/uwe-a%C3%9Fmann" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_3" links: doi: "http://dx.doi.org/10.1007/978-3-642-19440-5_3" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/BurgerKWA10" tags: - "semantics" - "attribute grammars" - "reference attribute grammars" - "grammar" researchr: "https://researchr.org/publication/BurgerKWA10" cites: 0 citedby: 0 pages: "22-41" 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: "BurgerKWA10" - title: "FreshML: programming with binders made simple" author: - name: "Mark R. Shinwell" link: "https://researchr.org/alias/mark-r.-shinwell" - name: "Andrew M. Pitts" link: "https://researchr.org/alias/andrew-m.-pitts" - name: "Murdoch Gabbay" link: "https://researchr.org/alias/murdoch-gabbay" year: "2003" doi: "http://doi.acm.org/10.1145/944705.944729" links: doi: "http://doi.acm.org/10.1145/944705.944729" tags: - "programming" researchr: "https://researchr.org/publication/ShinwellPG03" cites: 0 citedby: 0 pages: "263-274" booktitle: "Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming, ICFP 2003, Uppsala, Sweden, August 25-29, 2003" editor: - name: "Colin Runciman" link: "https://researchr.org/alias/colin-runciman" - name: "Olin Shivers" link: "https://researchr.org/alias/olin-shivers" publisher: "ACM" isbn: "1-58113-756-7" kind: "inproceedings" key: "ShinwellPG03" - title: "Attribute Grammar Paradigms - A High-Level Methodology in Language Implementation" author: - name: "Jukka Paakki" link: "https://researchr.org/alias/jukka-paakki" year: "1995" tags: - "attribute grammars" - "grammar" researchr: "https://researchr.org/publication/Paakki95" cites: 0 citedby: 2 journal: "ACM Computing Surveys" volume: "27" number: "2" pages: "196-255" kind: "article" key: "Paakki95" - title: "Object Constraint Language" year: "2012" tags: - "meta-model" - "constraints" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/OCL2012" cites: 0 citedby: 0 organization: "Object Management Group" edition: "2.3.1" kind: "manual" key: "OCL2012" - title: "CINNI - A Generic Calculus of Explicit Substitutions and its Application to lambda-, varsigma- and pi- Calculi" author: - name: "Mark-Oliver Stehr" link: "https://researchr.org/alias/mark-oliver-stehr" year: "2000" doi: "http://www.elsevier.com/gej-ng/31/29/23/71/22/show/Products/notes/index.htt#006" abstract: "We approach the general problem of representing higher-order languages, that are usually equipped with special variable binding constructs, in a less specialized firstorder framework such as membership equational logic and the corresponding version of rewriting logic. The solution we propose is based on CINNI, a new calculus of explicit substitutions that makes use of a term representation that contains both the standard named notation and de Bruijn’s indexed notation as special subcases. The calculus is parametric in the syntax of the object language, which allows us to apply it to different object languages such as λ-calculus, Abadi and Cardelli’s object calculus (ς-calculus) and Milner’s calculus of communicating mobile processes (π- calculus). As a practical result we obtain executable formal representations of these object languages in Maude with a representational distance close to zero." links: doi: "http://www.elsevier.com/gej-ng/31/29/23/71/22/show/Products/notes/index.htt#006" tags: - "rule-based" - "application framework" - "variable binding" - "term rewriting" - "graph-rewriting" - "logic" - "Meta-Environment" - "rewriting logic" - "rewriting" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/Stehr00" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "36" pages: "70-92" kind: "article" key: "Stehr00" - title: "Xtext: implement your language faster than the quick and dirty way" author: - name: "M. Eysholdt" link: "https://researchr.org/alias/m.-eysholdt" - name: "H. Behrens" link: "https://researchr.org/alias/h.-behrens" year: "2010" abstract: "Whether there is an (emerging or legacy) Domain-Specific Language to increase the expressiveness of your coworkers or whether you are about to invent a new General Purpose Prgramming Language: Tool support that goes beyond a parser/compiler is essential to make other people adopt your language and to be more productive. Xtext is an award- winning framework to build such tooling. In this tutorial we explain how to define a language and a statically typed, EMF-based Abstract Syntax Tree using only a grammar. We then generate a parser, a serializer and a smart editor from it. The editor provides many features out-of-the-box, such as syntax highlighting, content-assist, folding, jump-to-declaration and reverse-reference lookup across multiple files. Then, it is shown how literally every aspects of the language and its complementary tool support can be customized using Dependency Injection, especially how this can be done for linking, formatting and validation. As an outlook, we will demonstrate how to integrate a custom language with Java, how Xtext maintains a workspace-wide index of named elements and how to implement incremental code generation or attach an interpreter. " tags: - "rule-based" - "Java" - "interpreter" - "abstract syntax" - "EMF" - "code generation" - "compiler" - "parsing" - "incremental" - "grammar" - "domain-specific language" researchr: "https://researchr.org/publication/eysholdt2010xtext" cites: 0 citedby: 0 pages: "307-309" booktitle: "Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion" organization: "ACM" kind: "inproceedings" key: "eysholdt2010xtext" - title: "Symbol Table Construction and Name Lookup in ISO C++" author: - name: "James F. Power" link: "https://researchr.org/alias/james-f.-power" - name: "Brian A. Malloy" link: "https://researchr.org/alias/brian-a.-malloy" year: "2000" doi: "http://doi.ieeecomputersociety.org/10.1109/TOOLS.2000.891358" links: doi: "http://doi.ieeecomputersociety.org/10.1109/TOOLS.2000.891358" tags: - "C++" researchr: "https://researchr.org/publication/PowerM00%3A1" cites: 0 citedby: 0 pages: "57-69" booktitle: "TOOLS Pacific 2000: 37th International Conference on Technology of Object-Oriented Languages and Systems, Sydney, Australia, November 2000" publisher: "IEEE Computer Society" kind: "inproceedings" key: "PowerM00:1" - title: "Mechanized meta-reasoning using a hybrid HOAS/de bruijn representation and reflection" author: - name: "Jason Hickey" link: "https://researchr.org/alias/jason-hickey" - name: "Aleksey Nogin" link: "https://researchr.org/alias/aleksey-nogin" - name: "Xin Yu" link: "https://researchr.org/alias/xin-yu" - name: "Alexei Kopylov" link: "https://researchr.org/alias/alexei-kopylov" year: "2006" doi: "http://doi.acm.org/10.1145/1159803.1159826" links: doi: "http://doi.acm.org/10.1145/1159803.1159826" tags: - "meta-model" - "Meta-Environment" - "reflection" - "meta-objects" researchr: "https://researchr.org/publication/HickeyNYK06" cites: 0 citedby: 0 pages: "172-183" booktitle: "Proceedings of the 11th ACM SIGPLAN International Conference on Functional Programming, ICFP 2006, Portland, Oregon, USA, September 16-21, 2006" editor: - name: "John H. Reppy" link: "http://www.cs.uchicago.edu/people/jhr" - name: "Julia L. Lawall" link: "http://www.diku.dk/hjemmesider/ansatte/julia/" publisher: "ACM" isbn: "1-59593-309-3" kind: "inproceedings" key: "HickeyNYK06" - title: "The Spoofax Name Binding Language" author: - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Vlad A. Vergu" link: "http://www.linkedin.com/in/vladv" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2012" doi: "https://doi.org/10.1145/2384716.2384748" abstract: "In textual software languages, names are used to identify program elements such as variables, methods, and classes. Name analysis algorithms resolve names in order to establish references between definitions and uses of names. In this poster, we present the Spoofax Name Binding Language (NBL), a declarative meta-language for the specification of name binding and scope rules, which departs from the programmatic encodings of name binding provided by regular approaches. NBL aspires to become the universal language for name binding, which can be used next to BNF definitions in reference manuals, as well as serve the generation of implementations." links: doi: "https://doi.org/10.1145/2384716.2384748" "url": "https://doi.org/10.1145/2384716.2384748" tags: - "C++" - "Spoofax" researchr: "https://researchr.org/publication/KonatVKWV2012" cites: 0 citedby: 0 booktitle: "Companion to the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2012, Tucson, AR, USA, October 19 - 26, 2012" publisher: "ACM" kind: "inproceedings" key: "KonatVKWV2012" - title: "An Introductory Tutorial on JastAdd Attribute Grammars" author: - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-18023-1_4" links: doi: "http://dx.doi.org/10.1007/978-3-642-18023-1_4" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/gttse/Hedin09" tags: - "attribute grammars" - "JastAdd" - "grammar" researchr: "https://researchr.org/publication/Hedin09" cites: 0 citedby: 0 pages: "166-200" booktitle: "Generative and Transformational Techniques in Software Engineering III - International Summer School, GTTSE 2009, Braga, Portugal, July 6-11, 2009. Revised Papers" editor: - name: "Joao M. Fernandes" link: "https://researchr.org/alias/joao-m.-fernandes" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" volume: "6491" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-18022-4" kind: "inproceedings" key: "Hedin09" - 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: "Modular Name Analysis for Java Using JastAdd" author: - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2006" doi: "http://dx.doi.org/10.1007/11877028_18" abstract: "Name analysis for Java is challenging with its complex visibility rules involving nested scopes, inheritance, qualified access, and syntactic ambiguities. We show how Java name analysis including ambiguities related to names of variables, fields, and packages, can be implemented in a declarative and modular manner using the JastAdd compiler construction system. Declarative attributes and context-dependent rewrites enable the implementation to be modularized in the same way as the informal Java language specification. The individual rules in the specification transfer directly to equations in the implementation. Rewrites are used to define new concepts in terms of existing concepts in an iterative manner in the same way as the informal language specification. This enables equations to use both context-free and context-dependent concepts and leads to improved separation of concerns. A full Java 1.4 compiler has been implemented to validate the technique." links: doi: "http://dx.doi.org/10.1007/11877028_18" tags: - "rule-based" - "Java" - "analysis" - "graph-rewriting" - "rules" - "compiler" - "context-aware" - "rewriting" - "JastAdd" researchr: "https://researchr.org/publication/EkmanH06" cites: 0 citedby: 1 pages: "422-436" booktitle: "Generative and Transformational Techniques in Software Engineering, International Summer School, GTTSE 2005, Braga, Portugal, July 4-8, 2005. Revised Papers" editor: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" volume: "4143" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-45778-X" kind: "inproceedings" key: "EkmanH06" - title: "Implementing High-Level Identification Specifications" author: - name: "Arnd Poetzsch-Heffter" link: "https://researchr.org/alias/arnd-poetzsch-heffter" year: "1992" researchr: "https://researchr.org/publication/Poetzsch-Heffter92" cites: 0 citedby: 0 pages: "59-65" booktitle: "Compiler Construction, 4th International Conference on Compiler Construction, CC 92, Paderborn, Germany, October 5-7, 1992, Proceedings" editor: - name: "Uwe Kastens" link: "https://researchr.org/alias/uwe-kastens" - name: "Peter Pfahler" link: "https://researchr.org/alias/peter-pfahler" volume: "641" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-55984-1" kind: "inproceedings" key: "Poetzsch-Heffter92" - title: "Dynamic Binding Is the Name of the Game" author: - name: "Marco Antonio Gómez-Martín" link: "https://researchr.org/alias/marco-antonio-g%C3%B3mez-mart%C3%ADn" - name: "Pedro Pablo Gómez-Martín" link: "https://researchr.org/alias/pedro-pablo-g%C3%B3mez-mart%C3%ADn" - name: "Pedro A. González-Calero" link: "https://researchr.org/alias/pedro-a.-gonz%C3%A1lez-calero" year: "2006" doi: "http://dx.doi.org/10.1007/11872320_27" links: doi: "http://dx.doi.org/10.1007/11872320_27" researchr: "https://researchr.org/publication/Gomez-MartinGG06" cites: 0 citedby: 0 pages: "229-232" booktitle: "Entertainment Computing - ICEC 2006, 5th International Conference, Cambridge, UK, September 20-22, 2006, Proceedings" editor: - name: "Richard H. R. Harper" link: "https://researchr.org/alias/richard-h.-r.-harper" - name: "Matthias Rauterberg" link: "https://researchr.org/alias/matthias-rauterberg" - name: "Marco Combetto" link: "https://researchr.org/alias/marco-combetto" volume: "4161" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-45259-1" kind: "inproceedings" key: "Gomez-MartinGG06" - title: "A General Name Binding Mechanism" author: - name: "Michele Boreale" link: "https://researchr.org/alias/michele-boreale" - name: "Maria Grazia Buscemi" link: "https://researchr.org/alias/maria-grazia-buscemi" - name: "Ugo Montanari" link: "https://researchr.org/alias/ugo-montanari" year: "2005" doi: "http://dx.doi.org/10.1007/11580850_5" links: doi: "http://dx.doi.org/10.1007/11580850_5" researchr: "https://researchr.org/publication/BorealeBM05" cites: 0 citedby: 0 pages: "61-74" booktitle: "Trustworthy Global Computing, International Symposium, TGC 2005, Edinburgh, UK, April 7-9, 2005, Revised Selected Papers" editor: - name: "Rocco De Nicola" link: "https://researchr.org/alias/rocco-de-nicola" - name: "Davide Sangiorgi" link: "https://researchr.org/alias/davide-sangiorgi" volume: "3705" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-30007-4" kind: "inproceedings" key: "BorealeBM05" - title: "An Axiomatic Approach to Metareasoning on Nominal Algebras in HOAS" author: - name: "Furio Honsell" link: "https://researchr.org/alias/furio-honsell" - name: "Marino Miculan" link: "https://researchr.org/alias/marino-miculan" - name: "Ivan Scagnetto" link: "https://researchr.org/alias/ivan-scagnetto" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2076/20760963.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2076/20760963.htm" tags: - " algebra" - "systematic-approach" researchr: "https://researchr.org/publication/HonsellMS01%3A1" cites: 0 citedby: 0 pages: "963-978" booktitle: "Automata, Languages and Programming, 28th International Colloquium, ICALP 2001, Crete, Greece, July 8-12, 2001, Proceedings" editor: - name: "Fernando Orejas" link: "https://researchr.org/alias/fernando-orejas" - name: "Paul G. Spirakis" link: "https://researchr.org/alias/paul-g.-spirakis" - name: "Jan van Leeuwen" link: "https://researchr.org/alias/jan-van-leeuwen" volume: "2076" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-42287-0" kind: "inproceedings" key: "HonsellMS01:1" - title: "Engineering formal metatheory" author: - name: "Brian E. Aydemir" link: "https://researchr.org/alias/brian-e.-aydemir" - name: "Arthur Charguéraud" link: "https://researchr.org/alias/arthur-chargu%C3%A9raud" - name: "Benjamin C. Pierce" link: "http://www.cis.upenn.edu/~bcpierce/" - name: "Randy Pollack" link: "https://researchr.org/alias/randy-pollack" - name: "Stephanie Weirich" link: "http://www.cis.upenn.edu/~sweirich/" year: "2008" doi: "http://doi.acm.org/10.1145/1328438.1328443" abstract: "Machine-checked proofs of properties of programming languages have become a critical need, both for increased confidence in large and complex designs and as a foundation for technologies such as proof-carrying code. However, constructing these proofs remains a black art, involving many choices in the formulation of definitions and theorems that make a huge cumulative difference in the difficulty of carrying out large formal developments. The representation and manipulation of terms with variable binding is a key issue. We propose a novel style for formalizing metatheory, combining locally nameless representation of terms and cofinite quantification of free variable names in inductive definitions of relations on terms (typing, reduction, ...). The key technical insight is that our use of cofinite quantification obviates the need for reasoning about equivariance (the fact that free names can be renamed in derivations); in particular, the structural induction principles of relations defined using cofinite quantification are strong enough for metatheoretic reasoning, and need not be explicitly strengthened. Strong inversion principles follow (automatically, in Coq) from the induction principles. Although many of the underlying ingredients of our technique have been used before, their combination here yields a significant improvement over existing methodology, leading to developments that are faithful to informal practice, yet require no external tool support and little infrastructure within the proof assistant. We have carried out several large developments in this style using the Coq proof assistant and have made them publicly available. Our developments include type soundness for and ML (with references, exceptions, datatypes, recursion and patterns) and subject reduction for the Calculus of Constructions. Not only do these developments demonstrate the comprehensiveness of our approach; they have also been optimized for clarity and robustness, making them good templates for future extension. " links: doi: "http://doi.acm.org/10.1145/1328438.1328443" tags: - "programming languages" - "optimization" - "object-oriented programming" - "Machanized Metatheory" - "proof assistant" - "pattern language" - "type soundness" - "exceptions" - "Coq" - "variable binding" - "language engineering" - "Cofinite quantification" - "principles" - "little language" - "C++" - "metatheory" - "programming" - "subject-oriented programming" - "Syntactic type soundness" - "program optimization" - "systematic-approach" - "feature-oriented programming" - "Locally nameless" researchr: "https://researchr.org/publication/AydemirCPPW08" cites: 0 citedby: 0 pages: "3-15" booktitle: "Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008, San Francisco, California, USA, January 7-12, 2008" editor: - name: "George C. Necula" link: "https://researchr.org/alias/george-c.-necula" - name: "Philip Wadler" link: "http://homepages.inf.ed.ac.uk/wadler/" publisher: "ACM" isbn: "978-1-59593-689-9" kind: "inproceedings" key: "AydemirCPPW08" - title: "Generation of Compiler Symbol Processing Mechanisms" author: - name: "Steven P. Reiss" link: "https://researchr.org/alias/steven-p.-reiss" year: "1983" doi: "http://doi.acm.org/10.1145/69624.69625" abstract: "Compiler symbol processing has become complex as programming languages have evolved . In this paper we describe a comprehensive model of symbol processing, and a system that uses this model to generate the symbol processing portions of a compiler from simple specification. The model supports a variety of entities with different types of names. It includes a detailed view of scoping. It provides a simple picture of the complex mapping from a source token to a specific entity. The model is illustrated with examples from Ada. The system is divided into two parts. The first takes a nonprocedural description of the semantics of symbol in the language and produces a symbol table module for a compiler for that language. The second supports a simple symbol processing language that allows the easy connection of syntax and semantic processing to the symbol module. " links: doi: "http://doi.acm.org/10.1145/69624.69625" tags: - "programming languages" - "semantics" - "meta programming" - "meta-model" - "modeling language" - "language modeling" - "type system" - "source-to-source" - "compiler" - "programming" - "Meta-Environment" - "process modeling" - "open-source" - "domain-specific language" researchr: "https://researchr.org/publication/Reiss83" cites: 0 citedby: 0 journal: "ACM Transactions on Programming Languages and Systems" volume: "5" number: "2" pages: "127-163" kind: "article" key: "Reiss83" - title: "Implementation of a Modelica compiler using JastAdd attribute grammars" author: - name: "Johan {\\AA}kesson" link: "https://researchr.org/alias/johan-%7B%5Ebaa%7Dkesson" - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2010" doi: "http://dx.doi.org/10.1016/j.scico.2009.07.003" links: doi: "http://dx.doi.org/10.1016/j.scico.2009.07.003" tags: - "attribute grammars" - "compiler" - "JastAdd" - "grammar" researchr: "https://researchr.org/publication/AkessonEH10" cites: 0 citedby: 0 journal: "Science of Computer Programming" volume: "75" number: "1-2" pages: "21-38" kind: "article" key: "AkessonEH10" - title: "Binding Strategies and Scope Rules Are Independent" author: - name: "Thomas R. Virgilio" link: "https://researchr.org/alias/thomas-r.-virgilio" - name: "Raphael A. Finkel" link: "https://researchr.org/alias/raphael-a.-finkel" year: "1982" tags: - "rule-based" - "rules" researchr: "https://researchr.org/publication/VirgilioF82" cites: 0 citedby: 0 journal: "Computer Languages, Systems \\& Structures" volume: "7" number: "2" pages: "61-67" kind: "article" key: "VirgilioF82" - title: "An Overview of C-alpha-ml" author: - name: "François Pottier" link: "https://researchr.org/alias/fran%C3%A7ois-pottier" year: "2006" doi: "http://dx.doi.org/10.1016/j.entcs.2005.11.039" abstract: "Cαml is a tool that turns a so-called “binding specification” into an Objective Caml compilation unit. A binding specification resembles an algebraic data type declaration, but also includes information about names and binding. Cαml is meant to help writers of interpreters, compilers, or other programs-that-manipulate-programs deal with α-conversion in a safe and concise style. This paper presents an overview of Cαml's binding specification language and of the code that Cαml produces." links: doi: "http://dx.doi.org/10.1016/j.entcs.2005.11.039" tags: - "C++" researchr: "https://researchr.org/publication/Pottier06" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "148" number: "2" pages: "27-52" kind: "article" key: "Pottier06" - title: "Debugging Eli-Generated Compilers With Noosa" author: - name: "Anthony M. Sloane" link: "http://www.comp.mq.edu.au/~asloane" year: "1999" tags: - "debugging" - "compiler" researchr: "https://researchr.org/publication/Sloane99" cites: 0 citedby: 0 pages: "17-31" booktitle: "Compiler Construction, 8th International Conference, CC 99, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 99, Amsterdam, The Netherlands, 22-28 March, 1999, Proceedings" editor: - name: "Stefan Jähnichen" link: "https://researchr.org/alias/stefan-j%C3%A4hnichen" volume: "1575" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-65717-7" kind: "inproceedings" key: "Sloane99" - title: "Modelling and Specifying Name Visibility and Binding Semantics" author: - name: "Scott A. Vorthmann" link: "https://researchr.org/alias/scott-a.-vorthmann" year: "1993" researchr: "https://researchr.org/publication/Vor93" cites: 0 citedby: 0 kind: "techreport" key: "Vor93" - title: "Symbol Table Access" author: - name: "William M. McKeeman" link: "https://researchr.org/alias/william-m.-mckeeman" year: "1976" researchr: "https://researchr.org/publication/McKeeman76a" cites: 0 citedby: 0 pages: "253-301" booktitle: "Compiler Construction, An Advanced Course, 2nd ed" editor: - name: "Friedrich L. Bauer" link: "https://researchr.org/alias/friedrich-l.-bauer" - name: "Jürgen Eickel" link: "https://researchr.org/alias/j%C3%BCrgen-eickel" volume: "21" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-07542-9" kind: "inproceedings" key: "McKeeman76a" - title: "Eclipse Support for Using Eli and Teaching Programming Languages" author: - name: "Anthony M. Sloane" link: "http://www.comp.mq.edu.au/~asloane" - name: "William M. Waite" link: "https://researchr.org/alias/william-m.-waite" year: "2005" doi: "http://dx.doi.org/10.1016/j.entcs.2005.02.058" links: doi: "http://dx.doi.org/10.1016/j.entcs.2005.02.058" tags: - "programming languages" - "Eclipse" - "teaching" - "programming" researchr: "https://researchr.org/publication/SloaneW05" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "141" number: "4" pages: "189-194" kind: "article" key: "SloaneW05" - title: "Reusable specification modules for type analysis" author: - name: "Uwe Kastens" link: "https://researchr.org/alias/uwe-kastens" - name: "William M. Waite" link: "https://researchr.org/alias/william-m.-waite" year: "2009" doi: "http://dx.doi.org/10.1002/spe.917" links: doi: "http://dx.doi.org/10.1002/spe.917" tags: - "analysis" - "reuse" researchr: "https://researchr.org/publication/KastensW09" cites: 0 citedby: 0 journal: "Software: Practice and Experience" volume: "39" number: "9" pages: "833-864" kind: "article" key: "KastensW09" - title: "Decorated Attribute Grammars: Attribute Evaluation Meets Strategic Programming" author: - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Anthony M. Sloane" link: "http://www.comp.mq.edu.au/~asloane" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-00722-4_11" abstract: "Attribute grammars are a powerful specification formalism for tree-based computation, particularly for software language processing. Various extensions have been proposed to abstract over common patterns in attribute grammar specifications. These include various forms of copy rules to support non-local dependencies, collection attributes, and expressing dependencies that are evaluated to a fixed point. Rather than implementing extensions natively in an attribute evaluator, we propose attribute decorators that describe an abstract evaluation mechanism for attributes, making it possible to provide such extensions as part of a library of decorators. Inspired by strategic programming, decorators are specified using generic traversal operators. To demonstrate their effectiveness, we describe how to employ decorators in name, type, and flow analysis. " links: doi: "http://dx.doi.org/10.1007/978-3-642-00722-4_11" "technical report (pdf)": "http://www.lclnet.nl/publications/TUD-SERG-2008-038a.pdf" "project home page": "http://strategoxt.org/Stratego/Aster" tags: - "programming languages" - "rule-based" - "attribute grammars" - "program analysis" - "etaps" - "data-flow language" - "pattern language" - "generic programming" - "Stratego/XT" - "traversal" - "analysis" - "data-flow programming" - "data-flow" - "graph-rewriting" - "rules" - "C++" - "strategic programming" - "programming" - "rewriting" - "data-flow analysis" - "Aster" - "grammar" - "Stratego" researchr: "https://researchr.org/publication/KatsSV09" cites: 36 citedby: 1 pages: "142-157" booktitle: "Compiler Construction, 18th International Conference, CC 2009, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009, York, UK, March 22-29, 2009. Proceedings" editor: - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" volume: "5501" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-00721-7" kind: "inproceedings" key: "KatsSV09" - title: "Language Parametric Module Management for IDEs" author: - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Taeke Kooiker" link: "http://www.cwi.nl" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" year: "2008" doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.041" abstract: "An integrated development environment (IDE) monitors all the changes that a user makes to source code modules and responds accordingly by flagging errors, by reparsing, by rechecking, or by recompiling modules and by adjusting visualizations or other information derived from a module. A module manager is the central component of the IDE that is responsible for this behavior. Although the overall functionality of a module manager in a given IDE is fixed, its actual behavior strongly depends on the programming languages it has to support. What is a module? How do modules depend on each other? What is the effect of a change to a module? We propose a concise design for a language parametric module manager: a module manager that is parameterized with the module behavior of a specific language. We describe the design of our module manager and discuss some of its properties. We also report on the application of the module manager in the construction of IDEs for the specification language Asf+Sdf as well as for Java. Our overall goal is the rapid development (generation) of IDEs for programming languages and domain specific languages. The module manager presented here represents a next step in the creation of such generic language workbenches." links: doi: "http://dx.doi.org/10.1016/j.entcs.2008.03.041" tags: - "programming languages" - "workbench" - "Java" - "meta programming" - "generic programming" - "SDF" - "functional programming" - "language design" - "source-to-source" - "code generation" - "programming" - "language workbench" - "Meta-Environment" - "design" - "ASF+SDF" - "IDE" - "open-source" - "domain-specific language" researchr: "https://researchr.org/publication/KlintKV08" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "203" number: "2" pages: "3-19" kind: "article" key: "KlintKV08" - title: "Symbol Table Management in an HPF Debugger" author: - name: "Marian Bubak" link: "https://researchr.org/alias/marian-bubak" - name: "Wlodzimierz Funika" link: "https://researchr.org/alias/wlodzimierz-funika" - name: "Grzegorz Mlynarczyk" link: "https://researchr.org/alias/grzegorz-mlynarczyk" - name: "Krzysztof Sowa" link: "https://researchr.org/alias/krzysztof-sowa" - name: "Roland Wismüller" link: "https://researchr.org/alias/roland-wism%C3%BCller" year: "1999" tags: - "debugging" researchr: "https://researchr.org/publication/BubakFMSW99" cites: 0 citedby: 0 pages: "1278-1281" booktitle: "High-Performance Computing and Networking, 7th International Conference, HPCN Europe 1999, Amsterdam, The Netherlands, April 12-14, 1999, Proceedings" editor: - name: "Peter M. A. Sloot" link: "https://researchr.org/alias/peter-m.-a.-sloot" - name: "Marian Bubak" link: "https://researchr.org/alias/marian-bubak" - name: "Alfons G. Hoekstra" link: "https://researchr.org/alias/alfons-g.-hoekstra" - name: "Louis O. Hertzberger" link: "https://researchr.org/alias/louis-o.-hertzberger" volume: "1593" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-65821-1" kind: "inproceedings" key: "BubakFMSW99"