Soot (computer science)
Encyclopedia
Soot is a language manipulation and optimization framework consisting of intermediate language
Intermediate language
In computer science, an intermediate language is the language of an abstract machine designed to aid in the analysis of computer programs. The term comes from their use in compilers, where a compiler first translates the source code of a program into a form more suitable for code-improving...

s for the 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...

 programming language. It has been developed by the Sable Research Group
Sable Research Group
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...

 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...

 known for its 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...

, a Java virtual machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...

 and 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...

.

Soot provides a number of intermediate representations for use both through its API for other analysis programs to access and build upon. This include Jimple
Jimple
Jimple is an intermediate representation of a Java program designed as an alternative to the stack-based Java bytecode. It is typed and based on three address code. Jimple also defines a concrete syntax.-Introduction:...

, a simplified version of Java source code that has a maximum of three components per statement and Baf, a near bytecode
Bytecode
Bytecode, also known as p-code , is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code...

 representation.

The current Soot software release also contains detailed analyses
Program analysis (computer science)
In computer science, program analysis is the process of automatically analysing the behavior of computer programs. Two main approaches in program analysis are static program analysis and dynamic program analysis...

 that can be used out-of-the-box, such as context-sensitive flow-insensitive points-to analyses, call-graph analyses and domination analyses (answering the question "Must event a follow event b?").

Soot is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 available under the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

 (LGPL).

External links

  • Official website — source code and papers
  • Scientific publications citing Soot (on Google Scholar
    Google Scholar
    Google Scholar is a freely accessible web search engine that indexes the full text of scholarly literature across an array of publishing formats and disciplines. Released in beta in November 2004, the Google Scholar index includes most peer-reviewed online journals of Europe and America's largest...

    )
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK