25. OOPSLA 2010: Reno/Tahoe, Nevada, USA - Proceedings
William R. Cook, Siobhán Clarke, Martin C. Rinard (Eds.): 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. ACM 2010 ISBN 978-1-4503-0203-6
Keynotes
Stephanie Forrest: The case for evolvable software. 1
Benjamin C. Pierce: Art, science, and fear. 2
Kenneth O. Stanley: To achieve our highest goals, we must be willing to abandon them. 3
Selected papers I

Stefan Hanenberg: An experiment about static and dynamic type systems: doubts about the positive impact of static type systems on development time. 22-35
Shachar Itzhaky, Sumit Gulwani, Neil Immerman, Mooly Sagiv: A simple inductive synthesis methodology and its applications. 36-46
Software engineering
Julien Mercadal, Quentin Enard, Charles Consel, Nicolas Loriant: A domain-specific approach to architecturing error handling in pervasive computing. 47-61
Wei Li, Charles Zhang, Songlin Hu: G-Finder: routing programming questions closer to the experts. 62-73
Language design, compilation, and optimization
Joshua S. Auerbach, David F. Bacon, Perry Cheng, Rodric M. Rabbah: Lime: a Java-compatible and synthesizable language for heterogeneous architectures. 89-108
Kai Tian, Yunlian Jiang, Eddy Z. Zhang, Xipeng Shen: An input-centric paradigm for program dynamic optimizations. 125-139
Defect detection
Benjamin P. Wood, Adrian Sampson, Luis Ceze, Dan Grossman: Composable specifications for structured shared-memory communication. 140-159
Yao Shi, Soyeon Park, Zuoning Yin, Shan Lu, Yuanyuan Zhou, Wenguang Chen, Weimin Zheng: Do I use the wrong definition?: DeFuse: definition-use invariants for detecting concurrency and sequential bugs. 160-174
Mark Gabel, Junfeng Yang, Yuan Yu, Moisés Goldszmidt, Zhendong Su: Scalable and systematic detection of buggy inconsistencies in source code. 175-190
Runtime systems
Kazunori Ogata, Dai Mikurube, Kiyokuni Kawachiya, Scott Trent, Tamiya Onodera: A study of Java's non-Java memory. 191-204
Ross McIlroy, Joe Sventek: Hera-JVM: a runtime system for heterogeneous multi-core architectures. 205-222
Michal Wegiel, Chandra Krintz: Cross-language, type-safe, and transparent object sharing for co-located managed runtimes. 223-240
Monitoring
Guoliang Jin, Aditya V. Thakur, Ben Liblit, Shan Lu: Instrumentation and sampling strategies for cooperative concurrency bug isolation. 241-255
Christoph Reichenbach, Neil Immerman, Yannis Smaragdakis, Edward Aftandilian, Samuel Z. Guyer: What can the GC compute efficiently?: a language for heap assertions at GC time. 256-269
Rahul Purandare, Matthew B. Dwyer, Sebastian G. Elbaum: Monitor optimization via stutter-equivalent loop transformation. 270-285
Software structure

Hoan Anh Nguyen, Tung Thanh Nguyen, Gary Wilson Jr., Anh Tuan Nguyen, Miryung Kim, Tien N. Nguyen: A graph-based approach to API usage adaptation. 302-321
Stephen Kell: Component adaptation and assembly using interface relations. 322-340
Selected papers II
Bruno C. d. S. Oliveira, Adriaan Moors, Martin Odersky: Type classes as objects and implicits. 341-360
Benjamin S. Lerner, Herman Venter, Dan Grossman: Supporting dynamic, third-party code customizations in JavaScript using aspects. 361-376
Charlotte Herzeel, Pascal Costanza: Dynamic parallelization of recursive code: part 1: managing control flow interactions with the continuator. 377-396
Heap analysis
Isil Dillig, Thomas Dillig, Alex Aiken: Symbolic heap abstraction with demand-driven axiomatization of memory invariants. 397-410
Percy Liang, Omer Tripp, Mayur Naik, Mooly Sagiv: A dynamic evaluation of the precision of static heap abstractions. 411-427
Mario Méndez-Lojo, Augustine Mathew, Keshav Pingali: Parallel inclusion-based points-to analysis. 428-443
Metaprogramming
Lennart C. L. Kats, Eelco Visser: The spoofax language workbench: rules for declarative specification of languages and IDEs. 444-463
Marco Servetto, Elena Zucca: MetaFJig: a meta-circular composition language for Java-like classes. 464-483
Modularity
Stephan van Staden, Cristiano Calcagno: Reasoning about multiple related abstractions with MultiStar. 504-519
Shigeru Chiba, Atsushi Igarashi, Salikh Zakirov: Mostly modular compilation of crosscutting concerns by contextual predicate dispatch. 539-554
Higher-order, continuations, futures
Casey Klein, Matthew Flatt, Robert Bruce Findler: Random testing for higher-order, stateful programs. 555-566
Jay A. McCarthy: The two-state solution: native and serializable continuations accord. 567-582
James Swaine, Kevin Tew, Peter A. Dinda, Robert Bruce Findler, Matthew Flatt: Back to the futures: incremental parallelization of existing sequential runtime systems. 583-597
Sharing
Yoav Zibin, Alex Potanin, Paley Li, Mahmood Ali, Michael D. Ernst: Ownership and immutability in generic Java. 598-617
Nicholas D. Matsakis, Thomas R. Gross: A time-aware type system for data-race protection and guaranteed initialization. 634-651
Concurrent programming
Gautam Upadhyaya, Samuel P. Midkiff, Vijay S. Pai: Automatic atomic region identification in shared memory SPMD programs. 652-670
Sebastian Burckhardt, Alexandro Baldassin, Daan Leijen: Concurrent programming with revisions and isolation types. 691-707
JIT compilation and tools
Michael Bebenita, Florian Brandner, Manuel Fähndrich, Francesco Logozzo, Wolfram Schulte, Nikolai Tillmann, Herman Venter: SPUR: a trace-based JIT compiler for CIL. 708-725
Puneet Kapur, Bradley Cossette, Robert J. Walker: Refactoring references for library migration. 726-738
Erik R. Altman, Matthew Arnold, Stephen Fink, Nick Mitchell: Performance analysis of idle programs. 739-753
Onward! long papers: decoupling

Toon Verwaest, Camillo Bruni, David Gurtner, Adrian Lienhard, Oscar Nierstrasz: Pinocchio: bringing reflection to life with first-class interpreters. 774-789
Hridesh Rajan, Steven M. Kautz, Wayne Rowcliffe: Concurrency by modularity: design patterns, a case in point. 790-805
Onward! long papers: computing
Martin C. Rinard, Henry Hoffmann, Sasa Misailovic, Stelios Sidiroglou: Patterns and statistical analysis for understanding reduced resource computing. 806-821
Andrew Sorensen, Henry Gardner: Programming with time: cyber-physical programming with impromptu. 822-834
Hassan Chafi, Zach DeVito, Adriaan Moors, Tiark Rompf, Arvind K. Sujeeth, Pat Hanrahan, Martin Odersky, Kunle Olukotun: Language virtualization for heterogeneous parallel computing. 835-847
Onward! long papers: analysis
Harold Ossher, Rachel K. E. Bellamy, Ian Simmonds, David Amid, Ateret Anaby-Tavor, Matthew Callery, Michael Desmond, Jacqueline de Vries, Amit Fisher, Sophia Krasikov: Flexible modeling tools for pre-requirements analysis: conceptual architecture and research challenges. 848-864
Tudor Dumitras, Priya Narasimhan, Eli Tilevich: To upgrade or not to upgrade: impact of online upgrades across multiple administrative domains. 865-876
Kenneth C. Arnold, Henry Lieberman: Managing ambiguity in programming by finding unambiguous examples. 877-884
Onward! essays

Jenny Quillien, Dave West: Rubber ducks, nightmares, and unsaturated predicates: proto-scientific schemata are good for agile. 901-917
Lennart C. L. Kats, Eelco Visser, Guido Wachsmuth: Pure and declarative syntax definition: paradise lost and regained. 918-932
Stefan Hanenberg: Faith, hope, and love: an essay on software science's neglect of human factors. 933-946



