Scale is an easily modified compiler written in Java.

See:
          Description

Packages
scale.alias Provides alias analysis.
scale.alias.shapirohorowitz Provides alias analysis using the Shapiro-Horowitz algorithm.
scale.alias.steensgaard Provides alias analysis using Steensgaard's algorithm.
scale.annot Provides a means of attaching annotations to nodes in the Clef AST and Scribble CFG.
scale.backend Generates assembly language output from the Scale CFG.
scale.backend.alpha Generates assembly language output for the Compaq Alpha® processor from the Scale CFG.
scale.backend.mips Generates assembly language output for the SGI Mips® processor from the Scale CFG.
scale.backend.ppc Generates assembly language output for the PowerPC® processor from the Scale CFG.
scale.backend.sparc Generates assembly language output for the Sun Sparc® processor from the Scale CFG.
scale.callGraph Provides the main container class for a compilation unit.
scale.clef Provides for the Clef Abstract Syntax Tree (AST) form used to represent the source language program as closely as possible.
scale.clef.decl Provides for describing the declataions such as variables and procedures.
scale.clef.expr Provides for describing expressions in the Clef AST.
scale.clef.stmt Provides for representing source language statements} in the Clef AST.
scale.clef.symtab Implements a symbol table for use in constructing the Clef AST.
scale.clef.type Provides for describing the types of expressions and variables.
scale.clef2C Converts Clef AST to ANSI C code.
scale.clef2scribble Converts a Clef AST to a Scribble CFG.
scale.clefbuilder Provides a means of building the Java-based Clef AST from the Scale front-end written in C.
scale.common Provides various base & "helper" classes.
scale.genIF Defines the interface to ClefBuilder.
scale.j2s Generates a Scribble CFG from a Java® bytecode file.
scale.jcr Reads Java® bytecode files.
scale.score Implements an internal representation of source programs using a control flow graph.
scale.score.analyses Performs alias analysis on the Scale CFG.
scale.score.chords Represents nodes in the Scribble CFG.
scale.score.dependence Provides dependence testing of array references in the Scribble CFG.
scale.score.dependence.omega Performs the dependence testing using the Omega test from the omega library.
scale.score.dependence.omega.omegaLib Implements the Omega Library in Java®.
scale.score.expr Represents expressions in the Scribble CFG.
scale.score.pred Provides various CFG spanning utilities.
scale.scribble2C Generates ANSI C code from the Scribble CFG.
scale.test Executes the Scale compiler.
scale.visual Creates graphical displays of the Scale internal structures.

 

Scale is an easily modified compiler written in Java. A more complete description is available at the University of Massachusetts Scale web site.