Sable Home
Main Page
People
Projects
Publications
Papers
Theses
Posters
Reports
Notes
Software
Internal
Links
Sable Publications
Papers
top
CC2010 Paper - Optimizing MATLAB through Just-In-Time Specialization
AOSD10 Paper - AspectMatlab: An Aspect-Oriented Scientific Programming Language
AOSD2009: Dependent Advice: A General Approach to Optimizing History-based Aspects
FSE2008: Finding Programming Errors Earlier by Evaluating Runtime Monitors Ahead-of-Time
BCS2008: Object representatives: a uniform abstraction for pointer information
ISSTA2008: Racer: Effective Race Detection Using AspectJ
[award winner]
AOSD2008: Relational Aspects as Tracematches
CC2008: Compiler-guaranteed Safety in Code-copying Virtual Machines
CGO2008: Phase-Based Adaptive Recompilation in a JVM
ECOOP2007: A staged static program analysis to improve the performance of runtime monitoring
PACT2007: Component-Based Lock Allocation
PASTE2007: Dynamic Purity Analysis for Java Programs
CC2007: Obfuscating Java: the most pain for the least gain
NODe2006: Avoiding Infinite Recursion with Stratified Aspects
ICPC2006: Programmer-Friendly Decompiled Java
CC2006: Context-sensitive points-to analysis: is it worth it?
ICPC2006: Dynamic Data Structure Analysis for Java Programs
VEE2006: Relative Factors in Performance Analysis of Java Virtual Machines
LCPC2005: Software Thread Level Speculation for the Java Language and Virtual Machine Environment
PASTE2005: SableSpMT: A Software Framework for Analysing Speculative Multithreading in Java
GAMEON-NA2005: (P)NFG: A Language and Runtime System for Structured Computer Narratives
CC2005: A Study of Type Analysis for Speculative Method Inlining in a JIT Environment
CC2005: Using inter-procedural side-effect information in JIT optimizations
AOSD2005: abc: An extensible AspectJ compiler
CAMP04: Code Layout as a Source of Noise in JVM Performance
VPW2: Return Value Prediction in a Java Virtual Machine
LCPC2004: A Practical MHP Information Analysis for Concurrent Java Programs
PLDI2004: Jedd: A BDD-based Relational Extension of Java
VM2004: Towards Dynamic Interprocedural Analysis in JVMs
CC2004: Integrating the Soot compiler infrastructure into an IDE
eTX2004: Visualizing Program Analysis with the Soot-Eclipse Plugin
OOPSLA2003: Dynamic Metrics for Java
SoftViz2003: EVolve: An Open Extensible Software Visualization Framework
PLDI2003: Points-to Analysis using BDDs
CGO2003: Dynamic Profiling and Trace Cache Generation
CGO2003: Design, Implementation and Evaluation of Adaptive Recompilation with On-Stack Replacement
CC2003: Effective Inline-Threaded Interpretation of Java Bytecode Using Preparation Sequences
CC2003: Scaling Java Points-To Analysis using Spark
PASTE02-2: STEP: A Framework for the Efficient Encoding of General Trace Data
PASTE02-1: Combining Static and Dynamic Data in Code Visualization
JGI02: Run-time Evaluation of Opportunities for Object Inlining in Java
ISMM2002: An Adaptive, Region-based Allocator for Java
CC2002: Decompiling Java Bytecode: Problems, Traps and Pitfalls
CC2002: A Comprehensive Approach to Array Bounds Check Elimination for Java
WCRE2001: Decompiling Java Using Staged Encapsulation
CC2001: A Framework for Optimizing Java Using Attributes
JVM01: SableVM: A Research Framework for the Efficient Execution of Java Bytecode
[award winner]
OOPSLA2000: Practical Virtual Method Call Resolution for Java
CASCON2000: A Framework for Optimizing Java Using Attributes
SAS2000: Efficient Inference of Static Types for Java Bytecode
CC2000: Optimizing Java Bytecode using the Soot Framework: Is it Feasible?
CASCON99: Soot - a Java Optimization Framework
TOOLS98: SableCC, an Object-Oriented Compiler Framework
Technical Reports
top
2009-3:
AspectMatlab: An Aspect-Oriented Scientific Programming Language
2009-2:
Understanding Method Level Speculation
2009-1:
Adaptive Software Return Value Prediction
2008-4:
A Stochastic Approach to Instruction Cache Optimization
2008-3:
Memory Abstractions for Speculative Multithreading
2008-2:
Enabling Static Analysis for Partial Java Programs
2008-1:
Transforming Timeline specifications into automata for runtime monitoring (extended version)
2007-9:
Bytecode Testing Framework for SableVM Code-copying Engine
2007-8:
Instance keys: A technique for sharpening whole-program pointer analyses with intraprocedural information
2007-7:
Compiler-guaranteed safety in code-copying VMs
2007-6:
Partial Program Analysis
2007-5:
Arithmetic Coding revealed - A guided tour from theory to praxis
2007-4:
Phase-based adaptive recompilation in a JVM
2007-3:
Component-Based Lock Allocation
2007-2:
Using hardware data to detect repetitive program behavior
2007-1:
libspmt: A Library for Speculative Multithreading
2006-5:
Obfuscating Java: the most pain for the least gain
2006-4:
Metrics for Measuring the Effectiveness of Decompilers and Obfuscators
2006-3:
Improving the Compiling Speed of the AspectBench Compiler
2006-2:
Programmer-friendly Decompiled Java
2006-1:
A Survey of Phase Analysis: Techniques, Evaluation and Applications
2005-4:
Assessing the Impact of Optimization in Java Virtual Machines
2005-3:
Dynamic Shape and Data Structure Analysis in Java
2005-2:
Context-sensitive points-to analysis: is it worth it?
2005-1:
Speculative Multithreading in a Java Virtual Machine
abc-2005-1:
Adding trace matching to AspectJ
abc-2004-3:
Optimising AspectJ
2004-8:
Code Layout as a Source of Noise in JVM Performance
2004-7:
An Algorithmic Approach for Precise Analysis of the pi-Calculus
2004-6:
Compiler Analyses for Improved Return Value Prediction
abc-2004-2:
Building the abc AspectJ compiler with Polyglot and Soot
2004-5:
Using inter-procedural side-effect information in JIT optimizations
2004-4:
A Study of Type Analysis for Speculative Method Inlining in a JIT Environment
abc-2004-1:
abc : An extensible AspectJ compiler
2004-3:
A Practical MHP Information Analysis for Concurrent Java Programs
2004-2:
Measuring the Dynamic Behaviour of AspectJ Programs
2004-1:
Precise, Partially Compositional Analysis of the pi-Calculus
2003-8: This document has been updated. See
2004-2
. [internal: original version
(.ps.gz)
(.pdf)
]
2003-7:
Jedd: A BDD-based relational extension of Java
2003-6:
Problems in Objectively Quantifying Benchmarks using Dynamic Metrics
2003-5:
Towards Dynamic Interprocedural Analysis in JVMs
2003-4:
Integrating the Soot compiler infrastructure into an IDE
2003-3:
Improving the Precision and Correctness of Exception Analysis in Soot
2003-2:
Points-to Inspired Static Analysis For The pi-Calculus
2003-1:
Dynamic Metrics for Java
2002-12:
EVolve: An Open Extensible Software Visualization Framework
2002-11:
Dynamic Metrics for Compiler Developers
2002-10:
Points-To Analysis using BDDs
2002-9:
Scaling Java Points-To Analysis using Spark
2002-8:
Dynamic Profiling and Trace Cache Generation for a Java Virtual Machine
2002-7:
STEP: A Framework for the Efficient Encoding of General Trace Data
2002-6:
EVolve: An Extensible Software Visualization Framework
2002-5:
Fast Local List Scheduling
2002-4:
Combining Static and Dynamic Data in Code Visualization
2002-3:
JIL: an Extensible Intermediate Language
2002-2:
Run-time Evaluation of Opportunities for Object Inlining in Java
2002-1:
An Adaptive, Region-Based Allocator for Java
2001-2:
STOOP: The Sable Toolkit for Object-Oriented Profiling
2001-1:
Decompiling Java Bytecode: Problems, Traps and Pitfalls
2000-4:
A Comprehensive Approach to Array Bounds Check Elimination for Java
2000-3:
SableVM: A Research Framework for the Efficient Execution of Java Bytecode
2000-2:
A Framework for Optimizing Java Using Attributes
2000-1:
Common Subexpression Removal in Soot
1999-4:
Practical Virtual Method Call Resolution for Java
1999-3:
Optimizing Java Bytecode using the Soot Framework: Is it Feasible?
1999-2: This document has been updated. See
1999-4
. [internal: original version
(.ps)
(.ps.gz)
]
1999-1:
Intra-procedural Inference of Static Types for Java Bytecode
1998-7: This document has been updated. See
1999-4
. [internal: original version
(.ps)
(.ps.gz)
]
1998-6:
Of Graphs and Coffi Grounds: Decompiling Java
1998-5: This document has been updated. See
1999-1
. [internal: original version
(.ps)
(.ps.gz)
]
1998-4:
Jimple: Simplifying Java Bytecode for Analyses and Transformations
1998-3:
Measuring ILP in Java Programs
1998-2:
Profiling the Kaffe JIT Compiler
1998-1:
The Jimple Framework
Theses
top
Maxime Chevalier-Boisvert M.Sc. Thesis - McVM: an Optimizing Virtual Machine for the MATLAB Programming Language
Eric Bodden's Ph.D. Thesis: Verifying finite-state properties of large-scale programs
Dehua Zhang's Master's Thesis: Aspect Impact Analysis
Jun Li M.Sc. Thesis - McFor: a MATLAB-to-Fortran 95 Compiler
Richard L. Halpert's Master's Thesis: Static Lock Allocation
Michael R. Batchelder's Master's Thesis: Java bytecode obfuscation
Nomair A. Naeem's Master's Thesis: Programmer-friendly decompiled Java
Ahmer Ahmedani's Master's Thesis: Information flow in a Java intermediate language
Sokhom Pheng's Master's Thesis: Dynamic data structure analysis and visualization of Java programs
Navindra Umanee's Master's Thesis: Shimple: An Investigation of Static Single Assignment Form
Jennifer Lhoták's Master's Thesis: Visualization Tools for Optimizing Compilers
Ondřej Lhoták's Ph.D. Thesis: Program Analysis using Binary Decision Diagrams
Chris Goard's Master's Thesis: Measuring and improving the runtime behaviour of AspectJ programs
Feng Qian's PhD Thesis: Runtime Techniques and Interprocedural Analysis in Java Virtual Machines
Anatole Le's Master's Thesis: Using Inter-Procedural Side-Effect Information in JIT Optimizations
Bruno Dufour's Master's Thesis: Objective Quantification of Program Behaviour Using Dynamic Metrics
Sam Sanjabi's Master's Thesis: Dataflow Analysis of the Pi-Calculus
David Belanger's Master's Thesis: SableJIT: A retargetable just-in-time compiler
Lin Li's Master's Thesis: A practical MHP information computation for concurrent Java programs
Rhodes Brown's Master's Thesis: STEP: A Framework for the Efficient Encoding of General Trace Data
Jerome Miecznikowski's Master's Thesis: New algorithms for a Java decompiler and their implementation in Soot
Ondřej Lhoták's Master's Thesis: Spark: A flexible points-to analysis framework for Java
Etienne Gagnon's PhD Thesis: A Portable Research Framework for the Execution of Java Bytecode
David Eng's Master's Thesis: Combining Static and Dynamic Data in Code Visualization
Feng Qian's Master's Thesis: A Comprehensive Approach to Array Bounds Check Elimination for Java
Raja Vallée-Rai's Master's Thesis: Soot: A Java Bytecode Optimization Framework
Chrislain Razafimahefa's Master's Thesis: A study of side-effect analyses for Java
Vijay Sundaresan's Master's Thesis: Practical Techniques for Virtual Call Resolution in Java
Etienne Gagnon's Master's Thesis: SableCC, an Object Oriented Compiler Framework
Posters
top
Software Speculative Multithreading for Java
Adaptive Instruction Cache Optimizations
Visual Conflict Debugger - an Eclipse Plug-in for the Sablecc compiler generator
*J: A Tool for Dynamic Analysis of Java Programs
SPARK: Soot Pointer Analysis Research Kit
STOOP: The Sable Toolkit for Object-Oriented Profiling
Decompile Java Bytecode with Soot!
Soot - a Java Bytecode Optimization and Annotation Framework
Soot - a Java Bytecode Analysis and Transformation Framework
Technical Notes
top
2005-1:
Soot and Java 1.5
2000-1:
Notes on VTA Implementation in Soot
1998-2:
A Brief Description of Kaffe's Internals
1998-1:
Sable API Design Guidelines