Sable Research Group
Encyclopedia
The Sable Research Group is located at the School of Computer Science
at McGill University
and currently under the supervision of Laurie Hendren and Clark Verbrugge. The name of the group originates from the idea that the original goal was to develop research tools for the programming language Java
. Java
also being an island, the group was named after Sable Island
, a small island in the Atlantic Ocean in Canadian waters.
The group is primarily concerned with the development of program analyses and optimizations for Java
and AspectJ
as well as means for the efficient execution of multithreaded programs, e.g. by the form of speculative multithreading
or Transaction processing
. Premier research tools having been developed over the past years comprise Soot
(a bytecode analysis and optimization framework for Java
), the AspectBench Compiler (an open research compiler for AspectJ
), SableCC
(a LALR(1) parser generator), SableVM
(an extensible, interpreting Virtual Machine
for Java
).
McGill University School of Computer Science
The School of Computer Science is a School in the Faculty of Science at McGill University located in the McConnell Engineering Building at 3480 University, Montreal. The school is the second most funded computer science department in Canada. It currently has 34 faculty members, 60 Ph.D...
at McGill University
McGill University
Mohammed Fathy is a public research university located in Montreal, Quebec, Canada. The university bears the name of James McGill, a prominent Montreal merchant from Glasgow, Scotland, whose bequest formed the beginning of the university...
and currently under the supervision of Laurie Hendren and Clark Verbrugge. The name of the group originates from the idea that the original goal was to develop research tools for the programming language Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
. Java
Java
Java is an island of Indonesia. With a population of 135 million , it is the world's most populous island, and one of the most densely populated regions in the world. It is home to 60% of Indonesia's population. The Indonesian capital city, Jakarta, is in west Java...
also being an island, the group was named after Sable Island
Sable Island
Sable Island is a small Canadian island situated 300 km southeast of mainland Nova Scotia in the Atlantic Ocean. The island is a year-round home to approximately five people...
, a small island in the Atlantic Ocean in Canadian waters.
The group is primarily concerned with the development of program analyses and optimizations for Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
and AspectJ
AspectJ
AspectJ is an aspect-oriented extension created at PARC for the Java programming language. It is available in Eclipse Foundation open-source projects, both stand-alone and integrated into Eclipse. AspectJ has become the widely-used de-facto standard for AOP by emphasizing simplicity and usability...
as well as means for the efficient execution of multithreaded programs, e.g. by the form of speculative multithreading
Speculative multithreading
Speculative multithreading , also known as thread level speculation , is a dynamic parallelization technique that depends on out-of-order execution to achieve speedup on multiprocessor CPUs. It is a kind of speculative execution that occurs at the thread level as opposed to the instruction level....
or Transaction processing
Transaction processing
In computer science, transaction processing is information processing that is divided into individual, indivisible operations, called transactions. Each transaction must succeed or fail as a complete unit; it cannot remain in an intermediate state...
. Premier research tools having been developed over the past years comprise Soot
Soot (computer science)
Soot is a language manipulation and optimization framework consisting of intermediate languages for the Java programming language. It has been developed by the Sable Research Group at McGill University known for its SableVM, a Java virtual machine and the AspectBench Compiler, an open research...
(a bytecode analysis and optimization framework for Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
), the AspectBench Compiler (an open research compiler for AspectJ
AspectJ
AspectJ is an aspect-oriented extension created at PARC for the Java programming language. It is available in Eclipse Foundation open-source projects, both stand-alone and integrated into Eclipse. AspectJ has become the widely-used de-facto standard for AOP by emphasizing simplicity and usability...
), SableCC
SableCC
SableCC is an open source compiler generator in Java. Stable version is licensed under the GNU Lesser General Public License...
(a LALR(1) parser generator), SableVM
SableVM
SableVM is a clean room implementation of Java bytecode interpreter implementing the Java virtual machine specification, second edition.SableVM was designed to be a robust, extremely portable, efficient, and fully specifications-compliant Java Virtual Machine that would be easy to maintain and to...
(an extensible, interpreting Virtual Machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...
for Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
).