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: "Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlando, Florida, USA" editor: - name: "Shail Arora" link: "https://researchr.org/alias/shail-arora" - name: "Gary T. Leavens" link: "https://researchr.org/alias/gary-t.-leavens" publisher: "ACM" isbn: "978-1-60558-766-0" 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: "Proceedings of the 2004 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation, 2004, Verona, Italy, August 24-25, 2004" editor: - name: "Nevin Heintze" link: "https://researchr.org/alias/nevin-heintze" - name: "Peter Sestoft" link: "https://researchr.org/alias/peter-sestoft" publisher: "ACM" isbn: "1-58113-835-0" 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: "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: "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: "Software Architecture, TC2 First Working IFIP Conference on Software Architecture (WICSA1), 22-24 February 1999, San Antonio, Texas, USA" editor: - name: "Patrick Donohoe" link: "https://researchr.org/alias/patrick-donohoe" volume: "140" series: "IFIP Conference Proceedings" publisher: "Kluwer" isbn: "0-7923-8453-9" 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: "ACM Transactions on Software Engineering Methodology" 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: "Software Product Lines; Experiences and Research Directions, Proceedings of the First International Conference, SPLC 1, Denver, Colorado, USA, August 28-31, 2000, Proceedings" editor: - name: "Patrick Donohoe" link: "https://researchr.org/alias/patrick-donohoe" publisher: "Kluwer" isbn: "0-7923-7940-3" 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: "27th International Conference on Software Engineering (ICSE 2005), 15-21 May 2005, St. Louis, Missouri, USA" editor: - name: "Gruia-Catalin Roman" link: "https://researchr.org/alias/gruia-catalin-roman" - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" - name: "Bashar Nuseibeh" link: "https://researchr.org/alias/bashar-nuseibeh" publisher: "ACM" 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: "Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2006, Portland, Maine, USA, July 17-20, 2006" editor: - name: "Lori L. Pollock" link: "https://researchr.org/alias/lori-l.-pollock" - name: "Mauro Pezzè" link: "https://researchr.org/alias/mauro-pezz%C3%A8" publisher: "ACM" isbn: "1-59593-263-1" 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: "Software: Practice and Experience" 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: "Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, Tucson, AZ, USA, June 7-13, 2008" editor: - name: "Rajiv Gupta" link: "https://researchr.org/alias/rajiv-gupta" - name: "Saman P. Amarasinghe" link: "https://researchr.org/alias/saman-p.-amarasinghe" publisher: "ACM" isbn: "978-1-59593-860-2" 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: "ACM Transactions on Software Engineering Methodology" 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: "PACT 2009, Proceedings of the 18th International Conference on Parallel Architectures and Compilation Techniques, 12-16 September 2009, Raleigh, North Carolina, USA" publisher: "IEEE Computer Society" isbn: "978-0-7695-3771-9" 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: "28th International Conference on Software Engineering (ICSE 2006), Shanghai, China, May 20-28, 2006" editor: - name: "Leon J. Osterweil" link: "https://researchr.org/alias/leon-j.-osterweil" - name: "H. Dieter Rombach" link: "https://researchr.org/alias/h.-dieter-rombach" - name: "Mary Lou Soffa" link: "https://researchr.org/alias/mary-lou-soffa" publisher: "ACM" isbn: "1-59593-375-1" 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: "J. Parallel Distrib. Comput." 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: "28th International Conference on Software Engineering (ICSE 2006), Shanghai, China, May 20-28, 2006" editor: - name: "Leon J. Osterweil" link: "https://researchr.org/alias/leon-j.-osterweil" - name: "H. Dieter Rombach" link: "https://researchr.org/alias/h.-dieter-rombach" - name: "Mary Lou Soffa" link: "https://researchr.org/alias/mary-lou-soffa" publisher: "ACM" isbn: "1-59593-375-1" 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: "Journal of Functional Programming" 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: "Generative Programming and Component Engineering, 5th International Conference, GPCE 2006, Portland, Oregon, USA, October 22-26, 2006, Proceedings" editor: - name: "Stan Jarzabek" link: "https://researchr.org/alias/stan-jarzabek" - name: "Douglas C. Schmidt" link: "https://researchr.org/alias/douglas-c.-schmidt" - name: "Todd L. Veldhuizen" link: "https://researchr.org/alias/todd-l.-veldhuizen" publisher: "ACM" isbn: "1-59593-237-2" 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: "22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007), November 5-9, 2007, Atlanta, Georgia, USA" editor: - name: "R. E. Kurt Stirewalt" link: "https://researchr.org/alias/r.-e.-kurt-stirewalt" - name: "Alexander Egyed" link: "http://www.alexander-egyed.com/" - name: "Bernd Fischer" link: "http://www.ecs.soton.ac.uk/people/bf" publisher: "ACM" isbn: "978-1-59593-882-4 " 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 2004, ACM/IFIP/USENIX International Middleware Conference, Toronto, Canada, October 18-20, 2004, Proceedings" editor: - name: "Hans-Arno Jacobsen" link: "https://researchr.org/alias/hans-arno-jacobsen" volume: "3231" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-23428-4" 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: "Proceedings of the Eighteenth International Symposium on Software Testing and Analysis, ISSTA 2009, Chicago, IL, USA, July 19-23, 2009" editor: - name: "Gregg Rothermel" link: "https://researchr.org/alias/gregg-rothermel" - name: "Laura K. Dillon" link: "https://researchr.org/alias/laura-k.-dillon" publisher: "ACM" isbn: "978-1-60558-338-9" 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: "Model Checking Software, 15th International SPIN Workshop, Los Angeles, CA, USA, August 10-12, 2008, Proceedings" editor: - name: "Klaus Havelund" link: "https://researchr.org/alias/klaus-havelund" - name: "Rupak Majumdar" link: "https://researchr.org/alias/rupak-majumdar" - name: "Jens Palsberg" link: "https://researchr.org/alias/jens-palsberg" volume: "5156" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-85113-4" 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: "Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2010, Toronto, Ontario, Canada, June 5-10, 2010" editor: - name: "Benjamin G. Zorn" link: "https://researchr.org/alias/benjamin-g.-zorn" - name: "Alexander Aiken" link: "https://researchr.org/alias/alexander-aiken" publisher: "ACM" isbn: "978-1-4503-0019-3" 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: "27th International Conference on Software Engineering (ICSE 2005), 15-21 May 2005, St. Louis, Missouri, USA" editor: - name: "Gruia-Catalin Roman" link: "https://researchr.org/alias/gruia-catalin-roman" - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" - name: "Bashar Nuseibeh" link: "https://researchr.org/alias/bashar-nuseibeh" publisher: "ACM" 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: "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: "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: "Proceedings of the 6th International Conference on Aspect-Oriented Software Development, AOSD 2007, Vancouver, British Columbia, Canada, March 12-16, 2007" editor: - name: "Brian M. Barry" link: "https://researchr.org/alias/brian-m.-barry" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" volume: "208" series: "ACM International Conference Proceeding Series" publisher: "ACM" isbn: "1-59593-615-7" 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: "ACM Trans. Model. Comput. Simul." 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: "Science of Computer Programming" 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" note: "J.G. Webster (ed.), John Wiley and Sons" 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: "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: "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: "Proceedings of the 4th International Symposium on Memory Management, ISMM 2004, Vancouver, BC, Canada, October 24-25, 2004" editor: - name: "David F. Bacon" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/bacon.index.html" - name: "Amer Diwan" link: "https://researchr.org/alias/amer-diwan" publisher: "ACM" isbn: "1-58113-945-4" 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: "Generative and Component-Based Software Engineering, First International Symposium, GCSE 99, Erfurt, Germany, September 28-30, 1999, Revised Papers" editor: - name: "Krzysztof Czarnecki" link: "http://www.swen.uwaterloo.ca/~kczarnec/" - name: "Ulrich W. Eisenecker" link: "https://researchr.org/alias/ulrich-w.-eisenecker" volume: "1799" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-41172-0" 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: "ACM Transactions on Software Engineering Methodology" 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: "Proceedings of the 2008 ACM SIGPLAN workshop on Memory Systems Performance and Correctness: held in conjunction with the Thirteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 08), Seattle, Wa" editor: - name: "Emery D. Berger" link: "https://researchr.org/alias/emery-d.-berger" - name: "Brad Chen" link: "https://researchr.org/alias/brad-chen" publisher: "ACM" isbn: "978-1-60558-049-4" 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: "Domain-Specific Program Generation, International Seminar, Dagstuhl Castle, Germany, March 23-28, 2003, Revised Papers" editor: - name: "Christian Lengauer" link: "http://www.infosun.fim.uni-passau.de/cl/staff/lengauer/" - name: "Don S. Batory" link: "http://www.cs.utexas.edu/~dsb/" - name: "Charles Consel" link: "https://researchr.org/alias/charles-consel" - name: "Martin Odersky" link: "http://lampwww.epfl.ch/~odersky/" volume: "3016" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-22119-0" 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: "ECCOP 98 - Object-Oriented Programming, 12th European Conference, Brussels, Belgium, July 20-24, 1998, Proceedings" editor: - name: "Eric Jul" link: "https://researchr.org/alias/eric-jul" volume: "1445" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-64737-6" 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: "Object-Oriented Technology, ECOOP 2002 Workshops and Posters, Málaga, Spain, June 10-14, 2002, Proceedings" editor: - name: "Juan Hernández Núñez" link: "https://researchr.org/alias/juan-hern%C3%A1ndez-n%C3%BA%C3%B1ez" - name: "Ana M. D. Moreira" link: "https://researchr.org/alias/ana-m.-d.-moreira" volume: "2548" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-00233-2" 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 2002 - Object-Oriented Programming, 16th European Conference, Malaga, Spain, June 10-14, 2002, Proceedings" editor: - name: "Boris Magnusson" link: "https://researchr.org/alias/boris-magnusson" volume: "2374" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-43759-2" 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: "Software: Practice and Experience" 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: "IEEE Trans. Parallel Distrib. Syst." 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: "Generative and Component-Based Software Engineering, Second International Symposium, GCSE 2000, Erfurt, Germany, October 9-12, 2000, Revised Papers" editor: - name: "Gregory Butler" link: "https://researchr.org/alias/gregory-butler" - name: "Stan Jarzabek" link: "https://researchr.org/alias/stan-jarzabek" volume: "2177" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-42578-0" 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: "Proceedings of the 6th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, 24-26 August 2004, Verona, Italy" editor: - name: "Eugenio Moggi" link: "https://researchr.org/alias/eugenio-moggi" - name: "David Scott Warren" link: "https://researchr.org/alias/david-scott-warren" publisher: "ACM" isbn: "1-58113-819-9" 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 Notices" 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: "39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-39 2006), 9-13 December 2006, Orlando, Florida, USA" publisher: "IEEE Computer Society" 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: "Generative Programming and Component Engineering, 4th International Conference, GPCE 2005" editor: - name: "Robert Glück" link: "http://www.diku.dk/hjemmesider/ansatte/glueck/" - name: "Michael R. Lowry" link: "https://researchr.org/alias/michael-r.-lowry" volume: "3676" series: "Lecture Notes in Computer Science" address: "Tallinn, Estonia" publisher: "Springer" isbn: "3-540-29138-5" 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: "18th IEEE International Conference on Automated Software Engineering (ASE 2003), 6-10 October 2003, Montreal, Canada" publisher: "IEEE Computer Society" isbn: "0-7695-2035-9" 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: "Automated Software Engineering" 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: "Perform. Eval." 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: "Proceedings of the General Track: 2000 USENIX Annual Technical Conference, June 18-23, 2000, San Diego, CA, USA" publisher: "USENIX" isbn: "1-880446-22-7" 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: "Object-Oriented Technology, ECOOP 99 Workshop Reader, ECOOP 99 Workshops, Panels, and Posters, Lisbon, Portugal, June 14-18, 1999, Proceedings" editor: - name: "Ana M. D. Moreira" link: "https://researchr.org/alias/ana-m.-d.-moreira" - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" volume: "1743" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-66954-X" 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: "Proceedings of the 1999 USENIX Annual Technical Conference, June 6-11, 1999, Monterey, California, USA" publisher: "USENIX" isbn: "1-880446-33-2" 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: "Proceedings of the Conference on Domain-Specific Languages, October 15-17, 1997, Santa Barbara, California, USA" publisher: "USENIX" 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: "21st IEEE International Conference on Software Maintenance (ICSM 2005), 25-30 September 2005, Budapest, Hungary" publisher: "IEEE Computer Society" isbn: "0-7695-2368-4" 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: "Object-Oriented Technology ECOOP 2001 Workshop Reader, ECOOP 2001 Workshops, Panel, and Posters, Budapest, Hungary, June 18-22, 2001, Proceedings" editor: - name: "Ákos Frohner" link: "https://researchr.org/alias/%C3%A1kos-frohner" volume: "2323" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-43675-8" 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: "Object-Oriented Technology, ECOOP 98 Workshop Reader, ECOOP 98 Workshops, Demos, and Posters, Brussels, Belgium, July 20-24, 1998, Proceedings" editor: - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Jan Bosch" link: "https://researchr.org/alias/jan-bosch" volume: "1543" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-65460-7" 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: "ACM Transactions on Software Engineering Methodology" 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: "29th International Conference on Software Engineering (ICSE 2007), Minneapolis, MN, USA, May 20-26, 2007, Companion Volume" publisher: "IEEE Computer Society" 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: "Static Analysis, 11th International Symposium, SAS 2004, Verona, Italy, August 26-28, 2004, Proceedings" editor: - name: "Roberto Giacobazzi" link: "https://researchr.org/alias/roberto-giacobazzi" volume: "3148" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-22791-1" 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: "Software Reuse: Methods, Techniques, and Tools, 7th International Conference, ICSR-7, Austin, TX, USA, April 15-19, 2002, Proceedings" editor: - name: "Cristina Gacek" link: "https://researchr.org/alias/cristina-gacek" volume: "2319" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-43483-6" 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 2007 - Object-Oriented Programming, 21st European Conference, Berlin, Germany, July 30 - August 3, 2007, Proceedings" editor: - name: "Erik Ernst" link: "http://person.au.dk/eernst@cs" volume: "4609" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-73588-5" 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: "RAM-SE 07-ECOOP 07 Workshop on Reflection, AOP, and Meta-Data for Software Evolution, Proceedings, Berlin, Germany, July 31, 2007" editor: - name: "Walter Cazzola" link: "https://researchr.org/alias/walter-cazzola" - name: "Shigeru Chiba" link: "http://www.csg.is.titech.ac.jp/~chiba/" - name: "Yvonne Coady" link: "https://researchr.org/alias/yvonne-coady" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Günter Kniesel" link: "http://www.cs.uni-bonn.de/~gk/" - name: "Manuel Oriol" link: "https://researchr.org/alias/manuel-oriol" - name: "Gunter Saake" link: "https://researchr.org/alias/gunter-saake" publisher: "Fakultät für Informatik, Universität Magdeburg" 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: "30th International Conference on Software Engineering (ICSE 2008), Leipzig, Germany, May 10-18, 2008" editor: - name: "Wilhelm Schäfer" link: "https://researchr.org/alias/wilhelm-sch%C3%A4fer" - name: "Matthew B. Dwyer" link: "https://researchr.org/alias/matthew-b.-dwyer" - name: "Volker Gruhn" link: "https://researchr.org/alias/volker-gruhn" publisher: "ACM" isbn: "978-1-60558-079-1" 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: "23rd International Conference on Distributed Computing Systems (ICDCS 2003), 19-22 May 2003, Providence, RI, USA" publisher: "IEEE Computer Society" isbn: "0-7695-1920-2" 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: "Tests and Proofs, First International Conference, TAP 2007, Zurich, Switzerland, February 12-13, 2007. Revised Papers" editor: - name: "Yuri Gurevich" link: "https://researchr.org/alias/yuri-gurevich" - name: "Bertrand Meyer" link: "http://se.ethz.ch/~meyer/" volume: "4454" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-73769-8" 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"