% Yannis's publications %THESIS @phdthesis{ phd, author = "Yannis Smaragdakis", title = "Implementing Large-Scale Object-Oriented Components", school = "University of Texas at Austin", address = "Department of Computer Sciences", month = dec, year = 1999 } %JOURNAL @article{ layersTosem, title = "Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs", author = "Yannis Smaragdakis and Don Batory", journal = "{ACM} Transactions on Software Engineering and Methodologies ({TOSEM})", volume = 11, number = 2, month = apr, year = 2002, pages = "215--255" } @article{fcpp-spe, title = "{FC++}: Functional Tools for {OO} Tasks", author = "Yannis Smaragdakis and Brian McNamara", journal = "Software---Practice and Experience", volume = 32, number = 10, year = 2002, pages = "1015--1033", publisher = "John Wiley and Sons" } @article{fcpp-jfp, title = "Functional Programming with the {FC++} Library", author = "Brian McNamara and Yannis Smaragdakis", journal = "Journal of Functional Programming", volume = 14, number = 4, year = 2004, month = Jul, pages = "429--472", publisher = "Cambridge University Press" } @article{eelru-pe, author = "Yannis Smaragdakis and Scott F. Kaplan and Paul R. Wilson", title = "The {EELRU} Adaptive Replacement Algorithm", journal = "Performance Evaluation", volume = 53, number = 2, month = jul, year = 2003, pages = "93--123", publisher = "Elsevier" } @article{tracered-tomacs, author = "Scott F. Kaplan and Yannis Smaragdakis and Paul R. Wilson", title = "Flexible Reference Trace Reduction for {VM} Simulations", journal = "{ACM} Transactions on Modeling and Computer Simulation ({TOMACS})", volume = 13, Number = 1, Pages = {1-38}, Month = Jan, year = 2003 } @article{jcrasher-spe, title = "{JCrasher}: An Automatic Robustness Tester for {J}ava", author = "Christoph Csallner and Yannis Smaragdakis", journal = "Software---Practice and Experience", publisher = "John Wiley and Sons", pages = "1025--1050", volume = 34, number = 11, month = sep, year = 2004 } @article{jorchestra-kimura, title = "Automatic Partitioning for Prototyping Ubiquitous Computing Applications", author = "Nikitas Liogkas and Blair MacIntyre and Elizabeth Mynatt and Yannis Smaragdakis and Eli Tilevich and Stephen Voida", journal = "{IEEE} Pervasive Computing", volume = 3, number = 3, year = 2004, month = Jul, pages = "40--47" } @article{nrmi-tpds, title = "{NRMI}: Natural and Efficient Middleware", author = "Eli Tilevich and Yannis Smaragdakis", journal = "{IEEE} Transactions on Parallel and Distributed Systems ({TPDS})", volume = 19, number = 2, pages = "174--187", month = Feb, year = 2008 } @article{dsd-tosem, title = "{DSD-Crasher}: A Hybrid Analysis Tool for Bug Finding", author = "Christoph Csallner and Yannis Smaragdakis and Tao Xie", journal = "{ACM} Transactions on Software Engineering and Methodologies ({TOSEM})", volume = 17, number = 2, pages = "1--37", month = apr, year = 2008 } @article{maj-tosem, title = "Domain-Specific Languages and Program Generation with {Meta-AspectJ}", author = "Shan Shan Huang and David Zook and Yannis Smaragdakis", journal = "{ACM} Transactions on Software Engineering and Methodologies ({TOSEM})", volume = 18, number = 2, pages = "1--32", month = nov, year = 2008 } @article{jorch-tosem, title = "{J-Orchestra}: Enhancing {Java} Programs with Distribution Capabilities", author = "Eli Tilevich and Yannis Smaragdakis", journal = "{ACM} Transactions on Software Engineering and Methodologies ({TOSEM})", volume = 19, number = 1, year = 2009 } @article{safegen-scp, title="Statically Safe Program Generation with {SafeGen}", author = "Shan Shan Huang and David Zook and Yannis Smaragdakis", journal = "Science of Computer Programming", year = "to appear" } @article{orm-jase, author = "Yannis Smaragdakis and Christoph Csallner and Ranjith Subramanian", title = "Scalable Satisfiability Checking and Test Data Generation from Modeling Diagrams", journal = "Journal of Automated Software Engineering", volume = 16, number = 1, pages = "73--99", month = mar, year = 2009 } @article{adaptive-jpdc, title = "Adaptive Locks: Combining Transactions and Locks for Efficient Concurrency", author = "Takayuki Usui and Reimer Behrends and Jacob Evans and Yannis Smaragdakis", journal = "Journal of Parallel and Distributed Computing", year = 2010, month = oct, volume=70, issue = 10, pages = "1009--1023" } @article{morphing-toplas, author = "Shan Shan Huang and Yannis Smaragdakis", title = "Morphing: Structurally Shaping a Class by Reflecting on Others", journal = "{ACM} Transactions on Programming Languages and Systems ({TOPLAS})", issue_date = {January 2011}, volume = {33}, issue = {2}, month = {February}, year = {2011}, issn = {0164-0925}, pages = {1--44}, articleno = {6}, numpages = {44}, } @article{dolar-spe, title = "{DOLAR}: Virtualizing Heterogeneous Information Spaces to Support their Expansion", author = "Kostas Saidis and Yannis Smaragdakis and Alex Delis", journal = "Software---Practice and Experience", publisher = "John Wiley and Sons", year = "to appear" } % BOOK @article{ generatorsSurvey, title = "Application Generators", author = "Yannis Smaragdakis and Don Batory", journal = "Encyclopedia of Electrical and Electronics Engineering", year = 2000, note = "J.G. Webster (ed.), John Wiley and Sons" } @inproceedings{ generatorsOutlook, title = "A Personal Outlook on Generator Research", author = "Yannis Smaragdakis", booktitle = "Domain-Specific Program Generation", publisher = "Springer-Verlag", editor = "C. Lengauer and D. Batory and C. Consel and M. Odersky", year = 2004, note = "{LNCS} 3016" } % CONFERENCES @inproceedings{ distil, author = "Yannis Smaragdakis and Don Batory", title = "{DiSTiL}: {A} Transformation Library for Data Structures", booktitle = "Domain-Specific Languages ({DSL}) Conference", year = 1997, pages = "257--270", url = "citeseer.nj.nec.com/smaragdakis97distil.html" } @inproceedings{ jts, author = "Don Batory and Bernie Lofaso and Yannis Smaragdakis", title = "{JTS}: tools for implementing domain-specific languages", booktitle = "Proceedings Fifth International Conference on Software Reuse", publisher = "IEEE", address = "Victoria, BC, Canada", pages = "143--153", year = "1998", url = "citeseer.nj.nec.com/171171.html" } @inproceedings{ reusableicsr, author = "Yannis Smaragdakis and Don Batory", title = "Implementing Reusable Object-Oriented Components", booktitle = "5th International Conference on Software Reuse", address = "Victoria, Canada", year = "1998", pages = "36--45", url = "citeseer.nj.nec.com/article/smaragdakis98implementing.html" } @inproceedings{ mixinlayers, author = "Yannis Smaragdakis and Don Batory", title = "Implementing Layered Designs with Mixin Layers", booktitle = "Proceedings of the European Conference on Object-Oriented Programming ({ECOOP})", publisher = "Springer-Verlag LNCS 1445", pages = "550--570", year = "1998", url = "citeseer.nj.nec.com/smaragdakis98implementing.html" } @inproceedings{ archstyles, title = "Architectural Styles As Adaptors", author = "Don Batory and Yannis Smaragdakis and Lou Coglianese", booktitle = "First Working Conference on Software Architecture", year = 1999, month = feb, location = {San Antonio, Texas} } @inproceedings{tracered, author = "Scott F. Kaplan and Yannis Smaragdakis and Paul R. Wilson", title = "Trace Reduction for Virtual Memory Simulations", booktitle = "{ACM} {SIGMETRICS} Conference on Measurement and Modeling of Computer Systems", year = 1999, pages = {47--58}, } @inproceedings{eelru, author = "Yannis Smaragdakis and Scott F. Kaplan and Paul R. Wilson", title = "{EELRU}: Simple and Efficient Adaptive Page Replacement", booktitle = "{ACM} {SIGMETRICS} Conference on Measurement and Modeling of Computer Systems", year = 1999, pages = {122--133}, } @inproceedings{compressedvm, title = "The Case for Compressed Caching in Virtual Memory Systems", author = "Paul R. Wilson and Scott F. Kaplan and Yannis Smaragdakis", booktitle = "Proceedings of The 1999 USENIX Annual Technical Conference", pages = {101--116}, year = 1999 } @inproceedings{ generationscoping, author = "Yannis Smaragdakis and Don Batory", title = "Scoping Constructs for Program Generators", booktitle = "Generative and Component-Based Software Engineering Symposium ({GCSE})", pages = {65--78}, year = 1999, note = "Earlier version in Technical Report UTCS-TR-96-37", publisher = "Springer-Verlag, {LNCS} 1799" } @inproceedings{ productlines, title = "Object-Oriented Frameworks and Product Lines", author = "Don Batory and Richard Cardone and Yannis Smaragdakis", booktitle = "1st Software Product-Lines Conference ({SPLC1})", year = 2000 } @inproceedings{modem, author = "Yannis Smaragdakis and Paul Wilson", title = "Performing Replacement in Modem Pools", booktitle = "Proceedings of The {USENIX} Annual Technical Conference", year = 2000, pages = "277--292" } @inproceedings{ fcppicfp, author = "Brian McNamara and Yannis Smaragdakis", title = "Functional programming in {C++}", booktitle = "International Conference on Functional Programming ({ICFP})", publisher = "{ACM} {SIGPLAN} Notices, 35(9)", pages = "118--129", year = "2000", url = "citeseer.nj.nec.com/mcnamara00functional.html" } @inproceedings{ mixinbased, author = "Yannis Smaragdakis and Don Batory", title = "Mixin-Based Programming in {C++}", booktitle = "Generative and Component-Based Software Engineering Symposium ({GCSE})", year = 2000, pages = "163--177", publisher = "Springer-Verlag, {LNCS} 2177" } @inproceedings{ layered-dll, title = "Layered Development with ({Unix}) Dynamic Libraries", author = "Yannis Smaragdakis", booktitle = "7th International Conference on Software Reuse ({ICSR} `02)", year = 2002, month = apr, note = "{LNCS} 2319", publisher = "Springer-Verlag", pages = "33--45" } @inproceedings{ jorchestra, author = "Eli Tilevich and Yannis Smaragdakis", title = "{J-Orchestra}: Automatic {Java} Application Partitioning", booktitle = "Proceedings of the European Conference on Object-Oriented Programming ({ECOOP})", publisher = "Springer-Verlag, {LNCS} 2374", pages = "178--204", year = "2002" } @inproceedings{ nrmi, title = "{NRMI}: Natural and Efficient Middleware", author = "Eli Tilevich and Yannis Smaragdakis", booktitle = "International Conference on Distributed Computer Systems ({ICDCS})", year = 2003, pages = "252--261" } @inproceedings{ gotech, author = "Eli Tilevich and Stephan Urbanski and Yannis Smaragdakis and Marc Fleury", title = "Aspectizing Server-Side Distribution", booktitle = "Proceedings of the Automated Software Engineering ({ASE}) Conference", publisher = "IEEE Press", year = "2003", month = "October", pages = "130--141" } @inproceedings{maj, author = "David Zook and Shan Shan Huang and Yannis Smaragdakis", title = "Generating {AspectJ} Programs with Meta-{AspectJ}", booktitle = "Generative Programming and Component Engineering ({GPCE})", publisher = "Springer-Verlag", year = 2004, month = "October", pages = "1--18" } @inproceedings{dist-synch, title = "Portable and Efficient Distributed Threads for {J}ava", author = "Eli Tilevich and Yannis Smaragdakis", booktitle = "{ACM} {M}iddleware Conference", year = 2004, month = Oct, publisher = "Springer-Verlag", pages = "478--492" } @inproceedings{adaptive-ismm, title = "General Adaptive Replacement Policies", author = "Yannis Smaragdakis", booktitle = "International Symposium on Memory Management ({ISMM})", publisher = "ACM Press", year = 2004, month = oct, pages = "108--119" } @inproceedings{generators-pepm, title = "Program Generators and the Tools to Make them", author = "Yannis Smaragdakis and Shan Shan Huang and David Zook", booktitle = "{ACM SIGPLAN} Symposium on Partial Evaluation and Program Manipulation ({PEPM})", year = 2004, month = aug } @inproceedings{refactoring-icse, title = "Binary Refactoring: Improving Code Behind the Scenes", author = "Eli Tilevich and Yannis Smaragdakis", booktitle = "International Conference on Software Engineering ({ICSE})", year = 2005, month = may, pages = "264--273" } @inproceedings{cnc-icse, title = "{CnC}: Combining Static Checking and Testing", author = "Christoph Csallner and Yannis Smaragdakis", booktitle = "International Conference on Software Engineering ({ICSE})", year = 2005, month = may, pages = "422--431" } @inproceedings{safegen, title = "Statically Safe Program Generation with {SafeGen}", author = "Shan Shan Huang and David Zook and Yannis Smaragdakis", booktitle = "Generative Programming and Component Engineering ({GPCE}) Conference", year = 2005, month = sep } @inproceedings{appletizing, title = "Appletizing: Running Legacy {Java} Code Remotely From a Web Browser", author = "Eli Tilevich and Yannis Smaragdakis and Marcus Handte", booktitle = "International Conference on Software Maintenance ({ICSM})", year = 2005, month = sep } @inproceedings{maj-icse06, title = "Easy Language Extension with {Meta-AspectJ}", author = "Shan Shan Huang and Yannis Smaragdakis", booktitle = "International Conference on Software Engineering ({ICSE}), Emerging Results", year = 2006, month = may, pages = "865--868" } @inproceedings{behavioral-daikon, title = "Dynamically Discovering Likely Interface Invariants", author = "Christoph Csallner and Yannis Smaragdakis", booktitle = "International Conference on Software Engineering ({ICSE}), Emerging Results", year = 2006, month = may, pages = "861--864" } @inproceedings{daikon-cnc, title = "{DSD}-{C}rasher: A Hybrid Analysis Tool for Bug Finding", author = "Christoph Csallner and Yannis Smaragdakis", booktitle = "International Symposium on Software Testing and Analysis ({ISSTA})", year = 2006, month = jul, pages = "245--254" } @inproceedings{userind, title = "Transparent Program Transformations in the Presence of Opaque Code", author = "Eli Tilevich and Yannis Smaragdakis", booktitle = "Generative Programming and Component Engineering ({GPCE}) Conference", year = 2006, month = oct, pages = "89--94" } @inproceedings{micro06, title = "Adaptive Caches: Effective Shaping of Cache Behavior to Workloads", author = "Ranjith Subramanian and Yannis Smaragdakis and Gabriel Loh", booktitle = "39th {IEEE/ACM} International Symposium on Microarchitecture ({MICRO})", year = 2006, month = dec, pages = "385--396" } @inproceedings {cj-demo, author = "Shan Shan Huang and Yannis Smaragdakis", title = "Building Scalable Libraries with {cJ}", booktitle = "International Conference on Software Engineering ({ICSE}), Demonstrations", year="2007", month=may } @inproceedings {cj, author = "Shan Shan Huang and David Zook and Yannis Smaragdakis", title = "{cJ}: Enhancing {J}ava with Safe Type Conditions", bookTitle = "Aspect-Oriented Software Development conference ({AOSD}'07)", year="2007", month=mar, pages = "185--198" } @inproceedings {mj, author = "Shan Shan Huang and David Zook and Yannis Smaragdakis", title = "Morphing: Safely Shaping a Class in the Image of Others", booktitle = "Proceedings of the European Conference on Object-Oriented Programming ({ECOOP})", year="2007", publisher = "Springer-Verlag", month=aug, pages = "399--424" } @inproceedings {tic-oopsla07, author = "Yannis Smaragdakis and Anthony Kay and Reimer Behrends and Michal Young", title = "Transactions with Isolation and Cooperation", booktitle = "{ACM} {S}ymposium on {O}bject {O}riented {P}rogramming: {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})", year="2007", publisher = "ACM Press", month=oct, pages = "191--210" } @inproceedings {orm-ase07, author = "Yannis Smaragdakis and Christoph Csallner and Ranjith Subramanian", title = "Scalable Automatic Test Data Generation from Modeling Diagrams", booktitle = "{A}utomated {S}oftware {E}ngineering conference ({ASE})", year="2007", publisher = "ACM Press", pages= {4--13}, month=nov } @inproceedings{dysy-icse08, title = "{DySy}: Dynamic Symbolic Execution for Invariant Inference", author = "Christoph Csallner and Nikolai Tillmann and Yannis Smaragdakis", booktitle = "International Conference on Software Engineering ({ICSE})", year = 2008, pages = "281--290", month = may } @inproceedings{mj-pldi08, author = "Shan Shan Huang and Yannis Smaragdakis", title = "Class Morphing: Expressive and Safe Static Reflection", booktitle = "Conf. on Programming Language Design and Implementation (PLDI)", publisher = {ACM}, year = 2008, pages = "79--89", month = jun } @inproceedings{doop-issta09, author = "Martin Bravenboer and Yannis Smaragdakis", title = "Exception Analysis and Points-To Analysis: Better Together", booktitle = "International Symposium on Software Testing and Analysis ({ISSTA})", publisher = {ACM}, year = 2009, month = jul, pages = "1--12" } @inproceedings {doop-oopsla09, author = "Martin Bravenboer and Yannis Smaragdakis", title = "Strictly Declarative Specification of Sophisticated Points-to Analyses", booktitle = "{ACM} {S}ymposium on {O}bject {O}riented {P}rogramming: {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})", year="2009", publisher = "ACM Press", month=oct, pages= "243--262" } @inproceedings{stm-pact09, title = "Adaptive Locks: Combining Transactions and Locks for Efficient Concurrency", author = "Takayuki Usui and Reimer Behrends and Jacob Evans and Yannis Smaragdakis", booktitle = "Parallel Architectures and Compilation Techniques ({PACT})", year = 2009, month = sep, pages= "3--14" } @inproceedings{kcfa-pldi10, title = "Resolving and Exploiting the k-{CFA} Paradox: Illuminating Functional vs. Object-Oriented Program Analysis", author = "Matthew Might and Yannis Smaragdakis and David {Van Horn}", booktitle = "Conf. on Programming Language Design and Implementation (PLDI)", publisher = {ACM}, year = 2010, month = jun, pages="305--315" } @inproceedings {gcassert-oopsla10, author = "Christoph Reichenbach and Neil Immerman and Yannis Smaragdakis and Edward E. Aftandilian and Samuel Z. Guyer", title = "What Can the {GC} Compute Efficiently? {A} Language for Heap Assertions at {GC} Time", booktitle = "{ACM} {S}ymposium on {O}bject {O}riented {P}rogramming: {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})", year="2010", publisher = "ACM Press", month=oct, pages="256--269" } @inproceedings {pointsto-popl11, author = "Yannis Smaragdakis and Martin Bravenboer and Ond\v{r}ej Lhot\'{a}k", title = "Pick Your Contexts Well: Understanding Object-Sensitivity (The Making of a Precise and Scalable Pointer Analysis)", booktitle = "{ACM} {S}ymposium on {P}rinciples of {P}rogramming {L}anguages ({POPL})", year="2011", publisher = "ACM Press", month=jan, pages="17--30" } @inproceedings{variance-pldi11, title = "Taming the Wildcards: Combining Definition- and Use-Site Variance", author = "John Altidor and Shan Shan Huang and Yannis Smaragdakis", booktitle = "Conf. on Programming Language Design and Implementation (PLDI)", publisher = {ACM}, year = 2011, month = jun, } %OTHERS @inproceedings{ productlines-work, author = "Yannis Smaragdakis and Don Batory", title = "Building Product-Lines with Mixin-Layers", booktitle = "{ECOOP}'99 Workshop on Product-Line Architectures", year = 1999 } @inproceedings{ staticinterfaces, author = "Brian McNamara and Yannis Smaragdakis", title = "Static Interfaces in {C++}", booktitle = "{C++} Template Programming Workshop", year = 2000, month = oct } @inproceedings{ nestedinterfaces, author = "Yannis Smaragdakis", title = "Interfaces for Nested Classes", booktitle = "8th Foundations of Object-Oriented Languages workshop ({FOOL})", year = 2001, month = jan, location = {London, England} } @inproceedings{ fcpp-tmpw, title = "Functional Programming with the {FC++} Library", author = "Brian McNamara and Yannis Smaragdakis", year = 2001, booktitle = "Workshop on {C++} Template Programming" } @inproceedings{ jorchestra-mobile, title = "Automatic Application Partitioning: The {J-Orchestra} Approach", author = "Eli Tilevich and Yannis Smaragdakis", year = 2002, booktitle = "{ECOOP} 2002 Workshop on Mobile Object Systems" } @inproceedings{fcpp-monads, title = "Syntax Sugar for {FC++}: lambda, infix, monads, and more", author = "Brian McNamara and Yannis Smaragdakis", booktitle = "Declarative Programming in the Context of OO Languages ({DPCOOL}) at {PLI}'03", year = 2003 } @inproceedings{morph-ramse07, title = "Morphing Software for Easier Evolution", author = "Shan Shan Huang and Yannis Smaragdakis", booktitle = "Reflection, {AOP} and Meta-Data for Software Evolution ({RAM-SE}) Workshop", year = 2007 } @inproceedings{stm-mspc08, title = "General and Efficient Locking without Blocking", author = "Yannis Smaragdakis and Anthony Kay and Reimer Behrends and Michal Young", booktitle = "{ACM SIGPLAN} Workshop on Memory Systems Performance and Correctness ({MSPC})", year = 2008 } @inproceedings{stm-transact09, title = "Adaptive Locks: Combining Transactions and Locks for Efficient Concurrency", author = "Takayuki Usui and Yannis Smaragdakis and Reimer Behrends", booktitle = "{ACM SIGPLAN} Workshop on Transactional Computing ({TRANSACT})", year = 2009 } @article{fcpp-notices, title = "Functional Programming in {C++} Using the {FC++} Library", author = "Brian McNamara and Yannis Smaragdakis", journal = "{ACM} {SIGPLAN} Notices", volume = 36, number = 4, pages = "25--30", year = 2001, month = apr } @book{mpool01, title = "Multiparadigm Programming with Object-Oriented Languages ({MPOOL})", editor = "Kei Davis and Yannis Smaragdakis and Joerg Striegnitz", publisher = "John Von Neumann Institute for Compting ({NIC})", year = 2001, note = "{ISBN} 3-00-007968-8" } @book{mpool02, title = "Multiparadigm Programming with Object-Oriented Languages ({MPOOL})", editor = "Joerg Striegnitz and Kei Davis and Yannis Smaragdakis", publisher = "John Von Neumann Institute for Computing ({NIC})", year = 2002, note = "{ISBN} 3-00-009099-1" } @book{gpce03, title = "Generative Programming and Component Engineering, proceedings of {GPCE}'03", editor = "Frank Pfenning and Yannis Smaragdakis", year = 2003, publisher = "Springer-Verlag, {LNCS} 2830" } @book{gpce08, title = "Generative Programming and Component Engineering, proceedings of {GPCE}'08", editor = "Yannis Smaragdakis and Jeremy G. Siek", year = 2008, publisher = {ACM}, note = "{ISBN} 978-1-60558-267-2" }