Articles
Wake Up and Smell the Coffee: Evaluation Methodology for the 21st Century, Communications of the ACM (2008)
Evaluation methodology underpins all innovation in experimental computer science. It requires relevant workloads, appropriate experimental...
CASL: A Rapid-Prototyping Language for Modern Micro-architectures, Computer Languages, Systems, and Structures (2008)
We introduce CASL, the CoGenT Architecture Specification Language, a mixed behavioral–structure architecture description language designed...
Design, Implementation, and Evaluation of a Compilation Server, ACM Transactions on Programming Languages and Systems (2007)
Modern JVM implementations interleave execution with compilation of “hot” methods to achieve reasonable performance. Since...
Profile-Based Pretenuring, ACM Transactions on Programming Languages and Systems (2007)
Pretenuring can reduce copying costs in garbage collectors by allocating long-lived objects into regions that...
Nested Transactional Memory: Model and Architecture Sketches, Science of Computer Programming (2006)
We offer a reference model for nested transactions at the level of memory accesses, and...
Contributions to Books
Supporting Full-Text Information Retrieval with a Persistent Object Store, Fourth International Conference on Extending Database Technology (EDBT 1994) (1994)
The inverted file index common to many full-text information retrieval systems presents unusual and challenging...
Object Orientation as Catalyst for Language-Database Integration, Object-Oriented Concepts, Applications, and Databases (1989)
Nested Transactions: An Introduction, Concurrency Control and Reliability in Distributed Systems (1987)
Conference Papers
Open Nesting in Software Transactional Memory, ACM SIGPLAN 2007 Symposium on Principles and Practice of Parallel Programming (2007)
Transactional memory (TM) promises to simplify concurrent programming while providing scalability competitive to fine-grained locking....
CRAMM: Virtual Memory Support for Garbage-Collected Applications, 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’06) (2006)
Existing virtual memory systems usually work well with applications written in C and C++, but...
The DaCapo Benchmarks: Java Benchmarking Development and Analysis, Proceedings of the 2006 ACM International Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2006) (2006)
Since benchmarks drive computer science research and industry product development, which ones we use and...
Hybrid Optimizations: Which Optimization Algorithm to Use?, Proceedings of the 15th International Conference on Compiler Construction (2006)
We introduce a new class of compiler heuristics: hybrid optimizations. Hybrid optimizations choose dynamically at...
Automatic Heap Sizing: Taking Real Memory Into Account, Proceedings of the 2004 International Symposium on Memory Management (ISMM 2004) (2004)
Heap size has a huge impact on the performance of garbage collected applications. A heap...
Presentations
Nesting Transactions: Why and What Do We Need?, First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT) (2006)
Nesting Transactions: Why and What Do We Need?, First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT) (2006)
Compiling Object-Oriented Languages: Achievements and Promise, ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, (OOPSLA ’97) (1997)