The following is an overview of the C++ libraries and source code base. All of the SIF tools and programs are built on top of these building blocks. The tables below show which libraries depend on each other and the class hierarchy within those libraries.
The solids compiler is actually two different programs which do very similar things. The simpler program is gsif which is a batch style compiler with a command line interface modelled after gcc (which is where the comparison should end). gsif can read SIF, DSG, STL, or simple UG files in to a CAGGeometry data structure and then output a SIF, STL, or DSG file.
The second related program is the viewer program. The viewer is a superset of gsif in that it can read and emit the same languages that gsif can. In addition, the viewer uses OpenGL and Tcl/Tk to allow the user to interactively view the 3D part.
The following is a diagram of the stages involved in reading and then subsequently emitting or viewing parts: