Hobbes Support Library

The packages in this library provide support for implementing an interpreter or compiler.

See:
          Description

Packages
org.norecess.citkit  
org.norecess.citkit.environment This package provides classes to support an environment in an interpreter or compiler.
org.norecess.citkit.lir  
org.norecess.citkit.lir.expressions  
org.norecess.citkit.lir.instructions  
org.norecess.citkit.lir.memoryaddresses  
org.norecess.citkit.lir.operands  
org.norecess.citkit.lir.operands.registers  
org.norecess.citkit.symboltable Classes that implement a symbol table.
org.norecess.citkit.tir This package provides the classes necessary to implement a Tree Intermediate Representation (TIR) of a program.
org.norecess.citkit.tir.data  
org.norecess.citkit.tir.declarations  
org.norecess.citkit.tir.expressions This package provides the classes for the expressions in a language.
org.norecess.citkit.tir.lvalues  
org.norecess.citkit.tir.types  
org.norecess.citkit.types  
org.norecess.citkit.visitors  

 

The packages in this library provide support for implementing an interpreter or compiler.

The classes in the edu.calvin.compilers.hobbes.environment package provide run-time support for environments. See IEnvironment for more information.

The classes in the edu.calvin.compilers.hobbes.tir package (and its subpackages) implement Tree Intermediate Representations (TIR) for common language structures. These classes can be processed through the visitor pattern using the visitors in org.norecess.citkit.hobbes.visitors.

The classes in the edu.calvin.compilers.hobbes.types package implement representations for data types. Their main intent is for a type-checking system in a compiler.

The classes in the edu.calvin.compilers.hobbes.lir package implement representations for a Linear Intermediate Representation (LIR) as suggested by Stephen Muchnick in Advanced Compiler Design Implementation. While the other classes in this library have been used in many projects, these LIR classes are not nearly as well tested in the real world.