publications: - title: "Strictly declarative specification of sophisticated points-to analyses" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2009" doi: "http://doi.acm.org/10.1145/1640089.1640108" abstract: "We present the DOOP framework for points-to analysis of Java programs. DOOP builds on the idea of specifying pointer analysis algorithms declaratively, using Datalog: a logic-based language for defining (recursive) relations. We carry the declarative approach further than past work by describing the full end-to-end analysis in Datalog and optimizing aggressively using a novel technique specifically targeting highly recursive Datalog programs. As a result, DOOP achieves several benefits, including full order-of-magnitude improvements in runtime. We compare DOOP with Lhotak and Hendren's PADDLE, which defines the state of the art for context-sensitive analyses. For the exact same logical points-to definitions (and, consequently, identical precision) DOOP is more than 15x faster than PADDLE for a 1-call-site sensitive analysis of the DaCapo benchmarks, with lower but still substantial speedups for other important analyses. Additionally, DOOP scales to very precise analyses that are impossible with PADDLE and Whaley et al.'s bddbddb, directly addressing open problems in past literature. Finally, our implementation is modular and can be easily configured to analyses with a wide range of characteristics, largely due to its declarativeness." links: doi: "http://doi.acm.org/10.1145/1640089.1640108" tags: - "programming languages" - "optimization" - "rule-based" - "Java" - "program analysis" - "points-to analysis" - "analysis" - "source-to-source" - "logic programming" - "context-aware" - "logic" - "program optimization" - "Datalog" - "systematic-approach" - "open-source" researchr: "https://researchr.org/publication/BravenboerS09" cites: 31 citedby: 0 pages: "243-262" booktitle: "OOPSLA" kind: "inproceedings" key: "BravenboerS09" - title: "Program generators and the tools to make them" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "David Zook" link: "https://researchr.org/alias/david-zook" year: "2004" doi: "http://doi.acm.org/10.1145/1014007.1014017" links: doi: "http://doi.acm.org/10.1145/1014007.1014017" researchr: "https://researchr.org/publication/SmaragdakisHZ04" cites: 0 citedby: 0 pages: "92-100" booktitle: "PEPM" kind: "inproceedings" key: "SmaragdakisHZ04" - title: "Generating AspectJ Programs with Meta-AspectJ" author: - name: "David Zook" link: "https://researchr.org/alias/david-zook" - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3286&spage=1" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3286&spage=1" tags: - "AspectJ" - "meta programming" - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/ZookHS04" cites: 0 citedby: 3 pages: "1-18" booktitle: "GPCE" kind: "inproceedings" key: "ZookHS04" - title: "Architectural Styles as Adaptors" author: - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Lou Coglianese" link: "https://researchr.org/alias/lou-coglianese" year: "1999" tags: - "architecture" researchr: "https://researchr.org/publication/BatorySC99" cites: 0 citedby: 0 pages: "203-224" booktitle: "wicsa" kind: "inproceedings" key: "BatorySC99" - title: "J-Orchestra: Enhancing Java programs with distribution capabilities" author: - name: "Eli Tilevich" link: "https://researchr.org/alias/eli-tilevich" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2009" doi: "http://doi.acm.org/10.1145/1555392.1555394" links: doi: "http://doi.acm.org/10.1145/1555392.1555394" tags: - "Java" researchr: "https://researchr.org/publication/TilevichS09" cites: 0 citedby: 0 journal: "TOSEM" volume: "19" number: "1" kind: "article" key: "TilevichS09" - title: "Object-oriented frameworks and product lines" author: - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" - name: "Richard Cardone" link: "https://researchr.org/alias/richard-cardone" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2000" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/BatoryCS00" cites: 0 citedby: 0 pages: "227-248" booktitle: "SPLC" kind: "inproceedings" key: "BatoryCS00" - title: "Check n crash: combining static checking and testing" author: - name: "Christoph Csallner" link: "https://researchr.org/alias/christoph-csallner" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2005" doi: "http://doi.acm.org/10.1145/1062455.1062533" links: doi: "http://doi.acm.org/10.1145/1062455.1062533" tags: - "testing" researchr: "https://researchr.org/publication/CsallnerS05" cites: 0 citedby: 0 pages: "422-431" booktitle: "ICSE" kind: "inproceedings" key: "CsallnerS05" - title: "DSD-Crasher: a hybrid analysis tool for bug finding" author: - name: "Christoph Csallner" link: "https://researchr.org/alias/christoph-csallner" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2006" doi: "http://doi.acm.org/10.1145/1146238.1146267" links: doi: "http://doi.acm.org/10.1145/1146238.1146267" tags: - "analysis" researchr: "https://researchr.org/publication/CsallnerS06" cites: 0 citedby: 0 pages: "245-254" booktitle: "ISSTA" kind: "inproceedings" key: "CsallnerS06" - title: "FC++: Functional tools for object-oriented tasks" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Brian McNamara" link: "https://researchr.org/alias/brian-mcnamara" year: "2002" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/SmaragdakisM02" cites: 0 citedby: 0 journal: "SPE" volume: "32" number: "10" pages: "1015-1033" kind: "article" key: "SmaragdakisM02" - title: "Expressive and safe static reflection with MorphJ" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2008" doi: "http://doi.acm.org/10.1145/1375581.1375592" abstract: "Recently, language extensions have been proposed for Java and C# to support pattern-based reflective declaration. These extensions introduce a disciplined form of meta-programming and aspect-oriented programming to mainstream languages: They allow members of a class (i.e., fields and methods) to be declared by statically iterating over and pattern-matching on members of other classes. Such techniques, however, have been unable to safely express simple, but common, idioms such as declaring getter and setter methods for fields. In this paper, we present a mechanism that addresses the lack of expressiveness in past work without sacrificing safety. Our technique is based on the idea of nested patterns that elaborate the outer-most pattern with blocking or enabling conditions. We implemented this mechanism in a language, MorphJ. We demonstrate the expressiveness of MorphJ with real-world applications. In particular, the MorphJ reimplementation of DSTM2, a software transactional memory library, reduces 1,107 lines of Java reflection and bytecode engineering library calls to just 374 lines of MorphJ code. At the same time, the MorphJ solution is both high level and safer, as MorphJ can separately type check generic classes and catch errors early. We present and formalize the MorphJ type system, and offer a type-checking algorithm." links: doi: "http://doi.acm.org/10.1145/1375581.1375592" tags: - "programming languages" - "object-oriented programming" - "rule-based" - "Java" - "program analysis" - "meta programming" - "pattern language" - "generic programming" - "model checking" - "meta-model" - "Variability-Aware Analysis" - "language engineering" - "software language engineering" - "analysis" - "static analysis" - "type system" - "software engineering" - "model-driven engineering" - "C++" - "pattern matching" - "type checking" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "context-aware" - "Meta-Environment" - "reflection" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/HuangS08" cites: 0 citedby: 1 pages: "79-89" booktitle: "PLDI" kind: "inproceedings" key: "HuangS08" - title: "Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" year: "2002" doi: "http://doi.acm.org/10.1145/505145.505148" links: doi: "http://doi.acm.org/10.1145/505145.505148" tags: - "rule-based" - "refinement" researchr: "https://researchr.org/publication/SmaragdakisB02" cites: 0 citedby: 1 journal: "TOSEM" volume: "11" number: "2" pages: "215-255" kind: "article" key: "SmaragdakisB02" - title: "Adaptive Locks: Combining Transactions and Locks for Efficient Concurrency" author: - name: "Takayuki Usui" link: "https://researchr.org/alias/takayuki-usui" - name: "Reimer Behrends" link: "https://researchr.org/alias/reimer-behrends" - name: "Jacob Evans" link: "https://researchr.org/alias/jacob-evans" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/PACT.2009.20" links: doi: "http://doi.ieeecomputersociety.org/10.1109/PACT.2009.20" researchr: "https://researchr.org/publication/UsuiBES09" cites: 0 citedby: 0 pages: "3-14" booktitle: "IEEEpact" kind: "inproceedings" key: "UsuiBES09" - title: "Dynamically discovering likely interface invariants" author: - name: "Christoph Csallner" link: "https://researchr.org/alias/christoph-csallner" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2006" doi: "http://doi.acm.org/10.1145/1134435" links: doi: "http://doi.acm.org/10.1145/1134435" researchr: "https://researchr.org/publication/CsallnerS06%3A0" cites: 0 citedby: 0 pages: "861-864" booktitle: "ICSE" kind: "inproceedings" key: "CsallnerS06:0" - title: "Adaptive locks: Combining transactions and locks for efficient concurrency" author: - name: "Takayuki Usui" link: "https://researchr.org/alias/takayuki-usui" - name: "Reimer Behrends" link: "https://researchr.org/alias/reimer-behrends" - name: "Jacob Evans" link: "https://researchr.org/alias/jacob-evans" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2010" doi: "http://dx.doi.org/10.1016/j.jpdc.2010.02.006" links: doi: "http://dx.doi.org/10.1016/j.jpdc.2010.02.006" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/jpdc/UsuiBES10" researchr: "https://researchr.org/publication/UsuiBES10" cites: 0 citedby: 0 journal: "jpdc" volume: "70" number: "10" pages: "1009-1023" kind: "article" key: "UsuiBES10" - title: "Easy language extension with Meta-AspectJ" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2006" doi: "http://doi.acm.org/10.1145/1134436" links: doi: "http://doi.acm.org/10.1145/1134436" tags: - "AspectJ" - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/HuangS06" cites: 0 citedby: 1 pages: "865-868" booktitle: "ICSE" kind: "inproceedings" key: "HuangS06" - title: "Functional programming with the FC++ library" author: - name: "Brian McNamara" link: "https://researchr.org/alias/brian-mcnamara" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2004" doi: "http://dx.doi.org/10.1017/S0956796803004969" links: doi: "http://dx.doi.org/10.1017/S0956796803004969" tags: - "functional programming" - "programming" researchr: "https://researchr.org/publication/McNamaraS04" cites: 0 citedby: 0 journal: "JFP" volume: "14" number: "4" pages: "429-472" kind: "article" key: "McNamaraS04" - title: "Transparent program transformationsin the presence of opaque code" author: - name: "Eli Tilevich" link: "https://researchr.org/alias/eli-tilevich" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2006" doi: "http://doi.acm.org/10.1145/1173706.1173720" links: doi: "http://doi.acm.org/10.1145/1173706.1173720" researchr: "https://researchr.org/publication/TilevichS06" cites: 0 citedby: 0 pages: "89-94" booktitle: "GPCE" kind: "inproceedings" key: "TilevichS06" - title: "Scalable automatic test data generation from modeling diagrams" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Christoph Csallner" link: "https://researchr.org/alias/christoph-csallner" - name: "Ranjith Subramanian" link: "https://researchr.org/alias/ranjith-subramanian" year: "2007" doi: "http://doi.acm.org/10.1145/1321631.1321635" links: doi: "http://doi.acm.org/10.1145/1321631.1321635" tags: - "modeling" - "testing" - "data-flow" researchr: "https://researchr.org/publication/SmaragdakisCS07" cites: 0 citedby: 0 pages: "4-13" booktitle: "ASE" kind: "inproceedings" key: "SmaragdakisCS07" - title: "Trace Reduction for Virtual Memory Simulations" author: - name: "Scott F. Kaplan" link: "https://researchr.org/alias/scott-f.-kaplan" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Paul R. Wilson" link: "https://researchr.org/alias/paul-r.-wilson" year: "1999" doi: "http://doi.acm.org/10.1145/301453.301479" links: doi: "http://doi.acm.org/10.1145/301453.301479" researchr: "https://researchr.org/publication/KaplanSW99" cites: 0 citedby: 0 pages: "47-58" booktitle: "sigmetrics" kind: "inproceedings" key: "KaplanSW99" - title: "Portable and Efficient Distributed Threads for Java" author: - name: "Eli Tilevich" link: "https://researchr.org/alias/eli-tilevich" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3231&spage=478" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3231&spage=478" tags: - "Java" researchr: "https://researchr.org/publication/TilevichS04" cites: 0 citedby: 0 pages: "478-492" booktitle: "middleware" kind: "inproceedings" key: "TilevichS04" - title: "Exception analysis and points-to analysis: better together" author: - name: "Martin Bravenboer" link: "http://martin.bravenboer.name/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2009" doi: "http://doi.acm.org/10.1145/1572272.1572274" abstract: "Exception analysis and points-to analysis are typically done in complete separation. Past algorithms for precise exception analysis (e.g., pairing throw clauses with catch statements) use pre-computed points-to information. Past points-to analyses either unsoundly ignore exceptions, or conservatively compute a crude approximation of exception throwing (e.g., considering an exception throw as an assignment to a global variable, accessible from any catch clause). We show that this separation results in significant slowdowns or vast imprecision. The two kinds of analyses are interdependent: neither can be performed accurately without the other. The interdependency leads us to propose a joint handling for performance and precision. We show that our exception analysis is expressible highly elegantly in a declarative form, and can apply to points-to analyses of varying precision. In fact, our specification of exception analysis is \"fully precise\", as it models closely the Java exception handling semantics. The necessary approximation is provided only through whichever abstractions are used for contexts and objects in the base points-to analysis. Our combined approach achieves similar precision relative to exceptions (exception-catch links) as the best past precise exception analysis, with a runtime of seconds instead of tens of minutes. At the same time, our analysis achieves much higher precision of points-to information (an average of half as many values for each reachable variable for most of the DaCapo benchmarks) than points-to analyses that treat exceptions conservatively, all at a fraction of the execution time." links: doi: "http://doi.acm.org/10.1145/1572272.1572274" tags: - "semantics" - "rule-based" - "Java" - "completeness" - "exceptions" - "points-to analysis" - "analysis" - "source-to-source" - "object-role modeling" - "information models" - "context-aware" - "abstraction" - "systematic-approach" - "open-source" researchr: "https://researchr.org/publication/BravenboerS09-0" cites: 0 citedby: 0 pages: "1-12" booktitle: "ISSTA" kind: "inproceedings" key: "BravenboerS09-0" - title: "Combining Static and Dynamic Reasoning for the Discovery of Program Properties" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-85114-1_3" links: doi: "http://dx.doi.org/10.1007/978-3-540-85114-1_3" tags: - "discovery" researchr: "https://researchr.org/publication/Smaragdakis08" cites: 0 citedby: 0 pages: "7-8" booktitle: "spin" kind: "inproceedings" key: "Smaragdakis08" - title: "Resolving and exploiting the ::::k::::-CFA paradox: illuminating functional vs. object-oriented program analysis" author: - name: "Matthew Might" link: "https://researchr.org/alias/matthew-might" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "David Van Horn" link: "https://researchr.org/alias/david-van-horn" year: "2010" doi: "http://doi.acm.org/10.1145/1806596.1806631" links: doi: "http://doi.acm.org/10.1145/1806596.1806631" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/MightSH10" tags: - "object-oriented programming" - "program analysis" - "functional programming" - "analysis" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/MightSH10" cites: 0 citedby: 0 pages: "305-315" booktitle: "PLDI" kind: "inproceedings" key: "MightSH10" - title: "Binary refactoring: improving code behind the scenes" author: - name: "Eli Tilevich" link: "https://researchr.org/alias/eli-tilevich" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2005" doi: "http://doi.acm.org/10.1145/1062455.1062511" links: doi: "http://doi.acm.org/10.1145/1062455.1062511" tags: - "refactoring" researchr: "https://researchr.org/publication/TilevichS05" cites: 0 citedby: 0 pages: "264-273" booktitle: "ICSE" kind: "inproceedings" key: "TilevichS05" - title: "What can the GC compute efficiently?: a language for heap assertions at GC time" author: - name: "Christoph Reichenbach" link: "https://creichen.net" - name: "Neil Immerman" link: "https://researchr.org/alias/neil-immerman" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Edward Aftandilian" link: "https://researchr.org/alias/edward-aftandilian" - name: "Samuel Z. Guyer" link: "https://researchr.org/alias/samuel-z.-guyer" year: "2010" doi: "http://doi.acm.org/10.1145/1869459.1869482" links: doi: "http://doi.acm.org/10.1145/1869459.1869482" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/ReichenbachISAG10" researchr: "https://researchr.org/publication/ReichenbachISAG10" cites: 0 citedby: 0 pages: "256-269" booktitle: "OOPSLA" kind: "inproceedings" key: "ReichenbachISAG10" - title: "cJ: enhancing java with safe type conditions" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "David Zook" link: "https://researchr.org/alias/david-zook" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2007" doi: "http://doi.acm.org/10.1145/1218563.1218584" links: doi: "http://doi.acm.org/10.1145/1218563.1218584" tags: - "Java" - "Variability-Aware Analysis" - "analysis" - "context-aware" researchr: "https://researchr.org/publication/HuangZS07" cites: 0 citedby: 1 pages: "185-198" booktitle: "AOSD" kind: "inproceedings" key: "HuangZS07" - title: "Flexible reference trace reduction for VM simulations" author: - name: "Scott F. Kaplan" link: "https://researchr.org/alias/scott-f.-kaplan" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Paul R. Wilson" link: "https://researchr.org/alias/paul-r.-wilson" year: "2003" doi: "http://doi.acm.org/10.1145/778553.778554" links: doi: "http://doi.acm.org/10.1145/778553.778554" researchr: "https://researchr.org/publication/KaplanSW03" cites: 0 citedby: 0 journal: "tomacs" volume: "13" number: "1" pages: "1-38" kind: "article" key: "KaplanSW03" - title: "Statically Safe Program Generation with SafeGen" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "David Zook" link: "https://researchr.org/alias/david-zook" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2011" month: "May" doi: "http://dx.doi.org/10.1016/j.scico.2008.09.007" abstract: "SafeGen is a meta-programming language for writing statically safe generators of Java programs. If a program generator written in SafeGen passes the checks of the SafeGen compiler, then the generator will only generate well-formed Java programs, for any generator input. In other words, statically checking the generator guarantees the correctness of any generated program, with respect to static checks commonly performed by a conventional compiler (including type safety, existence of a superclass, etc.). To achieve this guarantee, SafeGen supports only language primitives for reflection over an existing well-formed Java program, primitives for creating program fragments, and a restricted set of constructs for iteration, conditional actions, and name generation. SafeGen’s static checking algorithm is a combination of traditional type checking for Java, and a series of calls to a theorem prover to check the validity of first-order logical sentences constructed to represent well-formedness properties of the generated program under all inputs. The approach has worked quite well in our tests, providing proofs for correct generators or pointing out interesting bugs." links: doi: "http://dx.doi.org/10.1016/j.scico.2008.09.007" tags: - "programming languages" - "Java" - "meta programming" - "model checking" - "meta-model" - "testing" - "writing" - "type checking" - "compiler" - "programming" - "Meta-Environment" - "reflection" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/HuangZookSmaragdakis2011" cites: 0 citedby: 0 journal: "SCP" volume: "76" number: "5" pages: "376-391" kind: "article" key: "HuangZookSmaragdakis2011" - title: "Application Generators" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" year: "2000" researchr: "https://researchr.org/publication/SmaragdakisB00-0" cites: 0 citedby: 0 journal: "Encyclopedia of Electrical and Electronics Engineering" kind: "article" key: "SmaragdakisB00-0" - title: "Transactions with isolation and cooperation" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Anthony Kay" link: "https://researchr.org/alias/anthony-kay" - name: "Reimer Behrends" link: "https://researchr.org/alias/reimer-behrends" - name: "Michal Young" link: "https://researchr.org/alias/michal-young" year: "2007" doi: "http://doi.acm.org/10.1145/1297027.1297042" links: doi: "http://doi.acm.org/10.1145/1297027.1297042" researchr: "https://researchr.org/publication/SmaragdakisKBY07" cites: 0 citedby: 0 pages: "191-210" booktitle: "OOPSLA" kind: "inproceedings" key: "SmaragdakisKBY07" - title: "General adaptive replacement policies" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2004" doi: "http://doi.acm.org/10.1145/1029873.1029887" links: doi: "http://doi.acm.org/10.1145/1029873.1029887" researchr: "https://researchr.org/publication/Smaragdakis04%3A1" cites: 0 citedby: 0 pages: "108-119" booktitle: "iwmm" kind: "inproceedings" key: "Smaragdakis04:1" - title: "Scoping Constructs for Software Generators" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" year: "1999" doi: "http://link.springer.de/link/service/series/0558/bibs/1799/17990065.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1799/17990065.htm" researchr: "https://researchr.org/publication/SmaragdakisB99" cites: 0 citedby: 0 pages: "65-78" booktitle: "gcse" kind: "inproceedings" key: "SmaragdakisB99" - title: "DSD-Crasher: A hybrid analysis tool for bug finding" author: - name: "Christoph Csallner" link: "https://researchr.org/alias/christoph-csallner" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Tao Xie" link: "https://researchr.org/alias/tao-xie" year: "2008" doi: "http://doi.acm.org/10.1145/1348250.1348254" links: doi: "http://doi.acm.org/10.1145/1348250.1348254" tags: - "analysis" researchr: "https://researchr.org/publication/CsallnerSX08" cites: 0 citedby: 0 journal: "TOSEM" volume: "17" number: "2" kind: "article" key: "CsallnerSX08" - title: "General and efficient locking without blocking" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Anthony Kay" link: "https://researchr.org/alias/anthony-kay" - name: "Reimer Behrends" link: "https://researchr.org/alias/reimer-behrends" - name: "Michal Young" link: "https://researchr.org/alias/michal-young" year: "2008" doi: "http://doi.acm.org/10.1145/1353522.1353524" links: doi: "http://doi.acm.org/10.1145/1353522.1353524" researchr: "https://researchr.org/publication/SmaragdakisKBY08" cites: 0 citedby: 0 pages: "1-5" booktitle: "asplos" kind: "inproceedings" key: "SmaragdakisKBY08" - title: "A Personal Outlook on Generator Research (A Position Paper)" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3016&spage=92" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3016&spage=92" researchr: "https://researchr.org/publication/Smaragdakis03" cites: 0 citedby: 0 pages: "92-106" booktitle: "Dagstuhl" kind: "inproceedings" key: "Smaragdakis03" - title: "Implementing Layered Designs with Mixin Layers" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" year: "1998" doi: "http://link.springer.de/link/service/series/0558/bibs/1445/14450550.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1445/14450550.htm" researchr: "https://researchr.org/publication/SmaragdakisB98" cites: 0 citedby: 0 pages: "550-570" booktitle: "ECOOP" kind: "inproceedings" key: "SmaragdakisB98" - title: "Multiparadigm Programming with Object-Oriented Languages" author: - name: "Kei Davis" link: "https://researchr.org/alias/kei-davis" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Jörg Striegnitz" link: "https://researchr.org/alias/j%C3%B6rg-striegnitz" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2548/25480154.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2548/25480154.htm" tags: - "programming languages" - "object-oriented programming" - "meta programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/DavisSS02" cites: 0 citedby: 0 pages: "154-159" booktitle: "ECOOPW" kind: "inproceedings" key: "DavisSS02" - title: "Functional programming in C++" author: - name: "Brian McNamara" link: "https://researchr.org/alias/brian-mcnamara" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2000" doi: "http://doi.acm.org/10.1145/351240.351251" links: doi: "http://doi.acm.org/10.1145/351240.351251" tags: - "functional programming" - "C++" - "programming" researchr: "https://researchr.org/publication/McNamaraS00" cites: 0 citedby: 0 pages: "118-129" booktitle: "ICFP" kind: "inproceedings" key: "McNamaraS00" - title: "J-Orchestra: Automatic Java Application Partitioning" author: - name: "Eli Tilevich" link: "https://researchr.org/alias/eli-tilevich" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2374/23740178.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2374/23740178.htm" tags: - "Java" - "partitioning" researchr: "https://researchr.org/publication/TilevichS02" cites: 0 citedby: 0 pages: "178-204" booktitle: "ECOOP" kind: "inproceedings" key: "TilevichS02" - title: "JCrasher: an automatic robustness tester for Java" author: - name: "Christoph Csallner" link: "https://researchr.org/alias/christoph-csallner" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2004" doi: "http://dx.doi.org/10.1002/spe.602" links: doi: "http://dx.doi.org/10.1002/spe.602" tags: - "Java" researchr: "https://researchr.org/publication/CsallnerS04" cites: 0 citedby: 0 journal: "SPE" volume: "34" number: "11" pages: "1025-1050" kind: "article" key: "CsallnerS04" - title: "NRMI: Natural and Efficient Middleware" author: - name: "Eli Tilevich" link: "https://researchr.org/alias/eli-tilevich" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2008" doi: "http://doi.ieeecomputersociety.org/10.1109/TPDS.2007.70717" links: doi: "http://doi.ieeecomputersociety.org/10.1109/TPDS.2007.70717" researchr: "https://researchr.org/publication/TilevichS08" cites: 0 citedby: 0 journal: "tpds" volume: "19" number: "2" pages: "174-187" kind: "article" key: "TilevichS08" - title: "Mixin-Based Programming in C++" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" year: "2000" doi: "http://link.springer.de/link/service/series/0558/bibs/2177/21770163.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2177/21770163.htm" tags: - "rule-based" - "C++" - "programming" researchr: "https://researchr.org/publication/SmaragdakisB00" cites: 0 citedby: 0 pages: "163-177" booktitle: "gcse" kind: "inproceedings" key: "SmaragdakisB00" - title: "Invited talk: program generators and the tools to make them" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2004" doi: "http://doi.acm.org/10.1145/1013963.1013968" links: doi: "http://doi.acm.org/10.1145/1013963.1013968" researchr: "https://researchr.org/publication/Smaragdakis04%3A0" cites: 0 citedby: 0 pages: "7-8" booktitle: "ppdp" kind: "inproceedings" key: "Smaragdakis04:0" - title: "Functional Programming in C++ using the FC++ Library" author: - name: "Brian McNamara" link: "https://researchr.org/alias/brian-mcnamara" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2001" tags: - "functional programming" - "C++" - "programming" researchr: "https://researchr.org/publication/McNamaraS01" cites: 0 citedby: 0 journal: "SIGPLAN" volume: "36" number: "4" pages: "25-30" kind: "article" key: "McNamaraS01" - title: "Adaptive Caches: Effective Shaping of Cache Behavior to Workloads" author: - name: "Ranjith Subramanian" link: "https://researchr.org/alias/ranjith-subramanian" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Gabriel H. Loh" link: "https://researchr.org/alias/gabriel-h.-loh" year: "2006" doi: "http://doi.ieeecomputersociety.org/10.1109/MICRO.2006.7" links: doi: "http://doi.ieeecomputersociety.org/10.1109/MICRO.2006.7" tags: - "caching" researchr: "https://researchr.org/publication/SubramanianSL06" cites: 0 citedby: 0 pages: "385-396" booktitle: "micro" kind: "inproceedings" key: "SubramanianSL06" - title: "Statically Safe Program Generation with SafeGen" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "David Zook" link: "https://researchr.org/alias/david-zook" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2005" doi: "http://dx.doi.org/10.1007/11561347_21" links: doi: "http://dx.doi.org/10.1007/11561347_21" tags: - "program analysis" - "Variability-Aware Analysis" - "analysis" - "static analysis" - "context-aware" researchr: "https://researchr.org/publication/HuangZS05" cites: 0 citedby: 0 pages: "309-326" booktitle: "GPCE" kind: "inproceedings" key: "HuangZS05" - title: "Aspectizing Server-Side Distribution" author: - name: "Eli Tilevich" link: "https://researchr.org/alias/eli-tilevich" - name: "Stephan Urbanski" link: "https://researchr.org/alias/stephan-urbanski" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Marc Fleury" link: "https://researchr.org/alias/marc-fleury" year: "2003" doi: "http://csdl.computer.org/comp/proceedings/ase/2003/2035/00/20350130abs.htm" links: doi: "http://csdl.computer.org/comp/proceedings/ase/2003/2035/00/20350130abs.htm" researchr: "https://researchr.org/publication/TilevichUSF03" cites: 0 citedby: 0 pages: "130-141" booktitle: "ASE" kind: "inproceedings" key: "TilevichUSF03" - title: "Scalable satisfiability checking and test data generation from modeling diagrams" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Christoph Csallner" link: "https://researchr.org/alias/christoph-csallner" - name: "Ranjith Subramanian" link: "https://researchr.org/alias/ranjith-subramanian" year: "2009" doi: "http://dx.doi.org/10.1007/s10515-008-0044-6" links: doi: "http://dx.doi.org/10.1007/s10515-008-0044-6" tags: - "model checking" - "meta-model" - "modeling" - "testing" - "data-flow" - "Meta-Environment" researchr: "https://researchr.org/publication/SmaragdakisCS09" cites: 0 citedby: 0 journal: "ASE" volume: "16" number: "1" pages: "73-99" kind: "article" key: "SmaragdakisCS09" - title: " JTS: A tool suite for building genvoca generators" author: - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" - name: " B. Lofaso" link: "https://researchr.org/alias/b.-lofaso" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "1998" researchr: "https://researchr.org/publication/Batory1998" cites: 0 citedby: 1 kind: "inproceedings" key: "Batory1998" - title: "The EELRU adaptive replacement algorithm" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Scott F. Kaplan" link: "https://researchr.org/alias/scott-f.-kaplan" - name: "Paul R. Wilson" link: "https://researchr.org/alias/paul-r.-wilson" year: "2003" doi: "http://dx.doi.org/10.1016/S0166-5316(02)00226-2" links: doi: "http://dx.doi.org/10.1016/S0166-5316(02)00226-2" researchr: "https://researchr.org/publication/SmaragdakisKW03" cites: 0 citedby: 0 journal: "pe" volume: "53" number: "2" pages: "93-123" kind: "article" key: "SmaragdakisKW03" - title: "Performing Replacement in Modem Pools" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Paul R. Wilson" link: "https://researchr.org/alias/paul-r.-wilson" year: "2000" doi: "http://www.usenix.org/publications/library/proceedings/usenix2000/general/smaragdakis.html" links: doi: "http://www.usenix.org/publications/library/proceedings/usenix2000/general/smaragdakis.html" researchr: "https://researchr.org/publication/SmaragdakisW00" cites: 0 citedby: 0 pages: "277-292" booktitle: "usenix" kind: "inproceedings" key: "SmaragdakisW00" - title: "Building Product-Lines with Mixin-Layers" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" year: "1999" researchr: "https://researchr.org/publication/Batory99" cites: 0 citedby: 0 pages: "197" booktitle: "ECOOPW" kind: "inproceedings" key: "Batory99" - title: "The Case for Compressed Caching in Virtual Memory Systems" author: - name: "Paul R. Wilson" link: "https://researchr.org/alias/paul-r.-wilson" - name: "Scott F. Kaplan" link: "https://researchr.org/alias/scott-f.-kaplan" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "1999" doi: "http://www.usenix.org/events/usenix99/full_papers/wilson/wilson.pdf" links: doi: "http://www.usenix.org/events/usenix99/full_papers/wilson/wilson.pdf" tags: - "caching" researchr: "https://researchr.org/publication/WilsonKS99" cites: 0 citedby: 0 pages: "101-116" booktitle: "usenix" kind: "inproceedings" key: "WilsonKS99" - title: "DiSTiL: A Transformation Library for Data Structures" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" year: "1997" doi: "http://www.usenix.org/publications/library/proceedings/dsl97/smaragdakis.html" links: doi: "http://www.usenix.org/publications/library/proceedings/dsl97/smaragdakis.html" tags: - "data-flow" - "DSL" - "transformation" researchr: "https://researchr.org/publication/SmaragdakisB97" cites: 0 citedby: 1 booktitle: "DSL" kind: "inproceedings" key: "SmaragdakisB97" - title: "Appletizing: Running Legacy Java Code Remotely from a Web Browser" author: - name: "Eli Tilevich" link: "https://researchr.org/alias/eli-tilevich" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Marcus Handte" link: "https://researchr.org/alias/marcus-handte" year: "2005" doi: "http://doi.ieeecomputersociety.org/10.1109/ICSM.2005.25" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ICSM.2005.25" tags: - "Java" researchr: "https://researchr.org/publication/TilevichSH05" cites: 0 citedby: 0 pages: "91-100" booktitle: "ICSM" kind: "inproceedings" key: "TilevichSH05" - title: "Multiparadigm Programming with OO Languages" author: - name: "Kei Davis" link: "https://researchr.org/alias/kei-davis" - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Jörg Striegnitz" link: "https://researchr.org/alias/j%C3%B6rg-striegnitz" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2323/23230131.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2323/23230131.htm" tags: - "programming languages" - "programming" researchr: "https://researchr.org/publication/DavisSS01" cites: 0 citedby: 0 pages: "131-134" booktitle: "ECOOPW" kind: "inproceedings" key: "DavisSS01" - title: "Implementing Layered Object-Oriented Designs" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "1998" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/Smaragdakis98" cites: 0 citedby: 0 pages: "34-35" booktitle: "ECOOPW" kind: "inproceedings" key: "Smaragdakis98" - title: "Domain-specific languages and program generation with Meta-AspectJ" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "David Zook" link: "https://researchr.org/alias/david-zook" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2008" doi: "http://doi.acm.org/10.1145/1416563.1416566" abstract: "Meta-AspectJ (MAJ) is a language for generating AspectJ programs using code templates. MAJ itself is an extension of Java, so users can interleave arbitrary Java code with AspectJ code templates. MAJ is a structured metaprogramming tool: a well-typed generator implies a syntactically correct generated program. MAJ promotes a methodology that combines aspect-oriented and generative programming. A valuable application is in implementing small domain-specific language extensions as generators using unobtrusive annotations for syntax extension and AspectJ as a back-end. The advantages of this approach are twofold. First, the generator integrates into an existing software application much as a regular API or library, instead of as a language extension. Second, a mature language implementation is easy to achieve with little effort since AspectJ takes care of the low-level issues of interfacing with the base Java language. In addition to its practical value, MAJ offers valuable insights to metaprogramming tool designers. It is a mature metaprogramming tool for AspectJ (and, by extension, Java): a lot of emphasis has been placed on context-sensitive parsing and error reporting. As a result, MAJ minimizes the number of metaprogramming (quote/unquote) operators and uses type inference to reduce the need to remember type names for syntactic entities." links: doi: "http://doi.acm.org/10.1145/1416563.1416566" tags: - "generative programming" - "programming languages" - "AspectJ" - "object-oriented programming" - "type inference" - "rule-based" - "Java" - "meta programming" - "meta-model" - "little language" - "code generation" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "context-aware" - "Meta-Environment" - "parsing" - "systematic-approach" - "feature-oriented programming" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/HuangZS08" cites: 0 citedby: 0 journal: "TOSEM" volume: "18" number: "2" kind: "article" key: "HuangZS08" - title: "Building Scalable Libraries with cJ" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/ICSECOMPANION.2007.26" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ICSECOMPANION.2007.26" researchr: "https://researchr.org/publication/HuangS07" cites: 0 citedby: 0 pages: "45-46" booktitle: "ICSE" kind: "inproceedings" key: "HuangS07" - title: "Program Generators and the Tools to Make Them" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3148&spage=19" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3148&spage=19" researchr: "https://researchr.org/publication/Smaragdakis04" cites: 0 citedby: 0 pages: "19-20" booktitle: "SAS" kind: "inproceedings" key: "Smaragdakis04" - title: "Layered Development with (Unix) Dynamic Libraries" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2319/23190033.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2319/23190033.htm" researchr: "https://researchr.org/publication/Smaragdakis02" cites: 0 citedby: 0 pages: "33-45" booktitle: "icsr" kind: "inproceedings" key: "Smaragdakis02" - title: "Morphing: Safely Shaping a Class in the Image of Others" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "David Zook" link: "https://researchr.org/alias/david-zook" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-73589-2_19" links: doi: "http://dx.doi.org/10.1007/978-3-540-73589-2_19" researchr: "https://researchr.org/publication/HuangZS07%3A0" cites: 0 citedby: 1 pages: "399-424" booktitle: "ECOOP" kind: "inproceedings" key: "HuangZS07:0" - title: "Morphing Software for Easier Evolution" author: - name: "Shan Shan Huang" link: "http://www.freeflygeek.com/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2007" tags: - "software evolution" researchr: "https://researchr.org/publication/HuangS07%3A0" cites: 0 citedby: 0 pages: "71-80" booktitle: "ECOOPW" kind: "inproceedings" key: "HuangS07:0" - title: "DySy: dynamic symbolic execution for invariant inference" author: - name: "Christoph Csallner" link: "https://researchr.org/alias/christoph-csallner" - name: "Nikolai Tillmann" link: "https://researchr.org/alias/nikolai-tillmann" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2008" doi: "http://doi.acm.org/10.1145/1368088.1368127" links: doi: "http://doi.acm.org/10.1145/1368088.1368127" researchr: "https://researchr.org/publication/CsallnerTS08" cites: 0 citedby: 0 pages: "281-290" booktitle: "ICSE" kind: "inproceedings" key: "CsallnerTS08" - title: "EELRU: Simple and Effective Adaptive Page Replacement" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Scott F. Kaplan" link: "https://researchr.org/alias/scott-f.-kaplan" - name: "Paul R. Wilson" link: "https://researchr.org/alias/paul-r.-wilson" year: "1999" doi: "http://doi.acm.org/10.1145/301453.301486" links: doi: "http://doi.acm.org/10.1145/301453.301486" researchr: "https://researchr.org/publication/SmaragdakisKW99" cites: 0 citedby: 0 pages: "122-133" booktitle: "sigmetrics" kind: "inproceedings" key: "SmaragdakisKW99" - title: "NRMI: Natural and Efficient Middleware" author: - name: "Eli Tilevich" link: "https://researchr.org/alias/eli-tilevich" - name: "Yannis Smaragdakis" link: "http://smaragd.org" year: "2003" doi: "http://csdl.computer.org/comp/proceedings/icdcs/2003/1920/00/19200252abs.htm" links: doi: "http://csdl.computer.org/comp/proceedings/icdcs/2003/1920/00/19200252abs.htm" researchr: "https://researchr.org/publication/TilevichS03" cites: 0 citedby: 0 pages: "252" booktitle: "icdcs" kind: "inproceedings" key: "TilevichS03" - title: "Combining Static and Dynamic Reasoning for Bug Detection" author: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Christoph Csallner" link: "https://researchr.org/alias/christoph-csallner" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-73770-4_1" links: doi: "http://dx.doi.org/10.1007/978-3-540-73770-4_1" tags: - "bug detection" researchr: "https://researchr.org/publication/SmaragdakisC07" cites: 0 citedby: 0 pages: "1-16" booktitle: "tap" kind: "inproceedings" key: "SmaragdakisC07" - title: "Generative Programming and Component Engineering, Second International Conference, GPCE 2003, Erfurt, Germany, September 22-25, 2003, Proceedings" year: "2003" tags: - "generative programming" - "programming" researchr: "https://researchr.org/publication/gpce%3A2003" cites: 0 citedby: 0 booktitle: "Generative Programming and Component Engineering, Second International Conference, GPCE 2003, Erfurt, Germany, September 22-25, 2003, Proceedings" conference: "GPCE" editor: - name: "Frank Pfenning" link: "http://www.cs.cmu.edu/~fp/" - name: "Yannis Smaragdakis" link: "http://smaragd.org" volume: "2830" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-20102-5" kind: "proceedings" key: "gpce:2003" - title: "Generative Programming and Component Engineering, 7th International Conference, GPCE 2008, Nashville, TN, USA, October 19-23, 2008, Proceedings" year: "2008" tags: - "generative programming" - "programming" researchr: "https://researchr.org/publication/gpce%3A2008" cites: 0 citedby: 0 booktitle: "Generative Programming and Component Engineering, 7th International Conference, GPCE 2008, Nashville, TN, USA, October 19-23, 2008, Proceedings" conference: "GPCE" editor: - name: "Yannis Smaragdakis" link: "http://smaragd.org" - name: "Jeremy G. Siek" link: "http://homes.soic.indiana.edu/jsiek/" publisher: "ACM" isbn: "978-1-60558-267-2" kind: "proceedings" key: "gpce:2008"