Sable Home
Main Page


Sable Publications (Posters)

McLab: An extensible compiler toolkit for MATLAB and related languages back
Author: Casey, Andrew and Li, Jun and Doherty, Jesse and Chevalier-Boisvert, Maxime and Aslam, Toheed and Dubrau, Anton and Lameed, Nurudeen and Aslam, Amina and Garg, Rahul and Radpour, Soroush and Belanger, Olivier Savary and Hendren, Laurie and Verbrugge, Clark
Date: May 2010

MATLAB is a popular language for scientific computation. Effectively compiling MATLAB presents many challenges due to the dynamic nature of the language. We present McLab, an extensible compiler toolkit for the MATLAB and related languages. McLab aims to provide high performance execution of MATLAB on modern architectures while bringing modern programming concepts such as aspect-oriented programming and other extensions to MATLAB. McLab consists of several components. The first component is an extensible frontend to parse and analyze MATLAB as well as extensions to MATLAB. The second component, called McFor, is a compiler to translate a static subset of MATLAB to FORTRAN. The third component, McVM, is a virtual machine including a JIT compiler to execute MATLAB code. Finally we also provide language extensions such as AspectMatlab. We present the current state of the implementation of McLab and describe ongoing work and future directions of the project.


Software Speculative Multithreading for Java back
Author: Christopher J. F. Pickett
Date: October 2007

We apply speculative multithreading to sequential Java programs in software to achieve speedup on existing multiprocessors. A common speculation library supports both Java bytecode interpreter and JIT compiler implementations. Initial profiling results indicate three main optimizations: adaptive return value prediction, online fork heuristics, and in-order nested method level speculation.

View the poster (.jpg) View the abstract (.pdf)

Adaptive Instruction Cache Optimizations back
Author: Maxime Chevalier-Boisvert
Date: October 2006

The memory alignment of executable code can have unforeseen effects on the run-time performance of programs through its influence on instruction cache operation. This fact has been known for a long time and several algorithms were devised to optimize the memory layout of compiled code to maximize instruction cache performance. Most of these use simple heuristics in order to approximate an optimal solution to this problem, which resembles an NP-complete packing problem. We take a different approach and attempt to examine this problem from a new angle, with the aim of better assessing the true impact of code alignment and the hope of discovering a more general, more powerful instruction cache optimization algorithm.

View the poster (.pdf)

Visual Conflict Debugger - an Eclipse Plug-in for the Sablecc compiler generator back
Author: Sébastien Adam
Date: October 2004

We describe a visual debugger for the SableCC compiler generator that aims to simplify the task of understanding and fixing conflicts in a grammar. In addition, an Eclipse plug-in illustrates these conflicts with the Eclipse plug-in itself.

View the poster (.pdf)

*J: A Tool for Dymamic Analysis of Java Programs back
Authors: Bruno Dufour, Laurie Hendren and Clark Verbrugge
Date: October 2003

We describe a complete system for gathering, computing and presenting dynamic metrics from Java programs. The system itself was motivated from our real goals in understanding program behaviour as compiler/runtime developers, and so solves a number of practical and difficult problems related metrics gathering and analysis.

View the poster (.pdf) View the abstract (.pdf)

SPARK: Soot Pointer Analysis Research Kit back
Author: Ondřej Lhoták
Date: June 2002

SPARK is a modular toolkit for flow-insensitive may points-to analyses for Java. The poster describes the capabilities and organization of the framework, Spark's Pointer Assignment Graph as a representation of pointer flow, the solver used to compute points-to information, side-effect analysis as an example client analysis, and our native method simulation framework.

Download the poster (.ps.gz)

STOOP: The Sable Toolkit for Object-oriented Profiling back
Authors: Rhodes Brown, John Jorgensen, Qin Wang, Laurie Hendren, Karel Driesen, Clark Verbrugge
Date: October 2001

STOOP is a framework which provides facilities for the rapid construction of tools to collect and visualize profile data from the execution of object-oriented programs. The poster describes the three main components of the framework: profiling agents, the event pipe, and visualizers.

View the poster (.pdf)

Decompile Java Bytecodes with Soot! back
Authors: Jerome Miecznikowski and Etienne Gagnon
Date: October 2000

We present a decompiler that converts Java class files back to Java source. Our work is based on the Soot framework and we concentrate on two essential algorithms: (1) Type inference for local variables, and (2) Control flow restructuring.

View the poster (.eps)       Download the poster (.eps.gz)

Soot - a Java Bytecode Optimization and Annotation Framework back
Authors: Raja Vallee-Rai, Patrick Lam, Patrice Pominville, Feng Qian, and Laurie Hendren
Date: October 2000

Soot is an optimization and annotation framework for Java bytecodes. The goal is to produce class files which execute faster on Java virtual machines as well to annotate the code with annotation or profiling information which is optionally useful to Java virtual machines.

View the poster (.pdf)       Download the poster (.pdf.gz)

Soot - a Java Bytecode Analysis and Transformation Framework back
Author: Raja Vallee-Rai
Date: November 1998

This poster gives an overview of the Soot framework. The areas covered are: why Java is so slow, how to optimize Java, advantages of Soot, Soot's current uses, and Soot's current status. This poster was presented at CASCON'98.

View the poster (.jpg)       Download the poster (.jpg.gz)

Last updated Thu Dec 19 13:20:19 EST 2002.