November 2002

Download

    DBOS, with SITH, is presented as a single file for download. Even though the two are described as separate applications, they are useless without each other. This version requires Java 1.2 (or greater).

    Source code is available under the GNU General Public License. Be sure to read the SITH documentation before using and for more details.

      dbos.zip (3.3 Megs) Updated 10:05 EST, Nov 21, 2002

Setup

  • The main directory (dbos) contains all the files that may have to change for your specific machine. Each subdirectory contains a logical aspect of the DBOS.
  • The Path.txt file contains the paths to all the files the DBOS requires. You should NOT have to alter any of these.

      main=
      autogen=autogen/
      jvm=JVM/JVM Instruction set.prn
      auto=work/
      atomic=work/A.class
      handle=work/
      DiskImageName=Database/Everything.dat
      KMALMethodStubParser=Compiler/KMAL MethodStub.yay
      KMALMethodBodyParser=Compiler/KMAL MethodBody.yay
      KMALClassParser=Compiler/KMAL Class.yay
      CompilerTests=Compiler/TestClass/
      Export=Export/

    Every path assumes the current directory is the directory containing the Path.txt file.

Execution

  • Need to have Java 1.2 (or greater) installed , and have the executables in your path
  • Make sure the current directory is the dbos main directory.
  • Run SITH with run.sh (Linux) or run.bat(Windows)

Compilation

  • Everything is already compiled to the ./work subdirectory, therefore recompile is optional.
  • Look at the com.bat file in the main directory. You will see that I move all files to the ./work directory before I compile. This is because the classes are all interdependent. It also makes for a simple classpath.

Special Files and Directories

(optional reading)

  • ./autogen directory contains all the class files compiled by the DBOS. It also contains some human readable forms to help debug the compiler.
  • ./BasicLibrary has code that does not depend on the DBOS, feel free to use those files in your own projects.
  • ./Compiler has all the source files for the compiler.
  • ./Database/Everything.dat is the DBOS database file. It is absolutely essential and encapsulates about 1/2 the current work done.
  • ./Export is where class files will be put when using the "Export" option on a class
  • ./GarbageCollector/GarbageCollector.java is self-explanatory.
  • ./Graphics contains the graphic primitives and interface classes
  • ./Handle has the Java code equivalents of the classes within the DBOS. These are used in Java to access the DBOS memory database and send messages.
  • ./Interpreter has the SITH interpreter code.
  • ./JavaClass contains all the classes that interpret the Java class file format. It is used to interpret existing files, or to build new ones.
  • ./JavaClass/ClassFileLoader.java takes a class file name as single parameter and decomposes it to ./autogen/temp.out for human-readable view.
  • ./JVM has the instruction set classes. Used by the compiler.
  • ./JVM/Java Instruction Set.prn is a text file containing the JVM instruction information, loaded by above classes.
  • ./Library here are some useful functions.
  • ./PartialEvaluation has the start of my dynamic partial evaluator
  • ./Primitive contains all the source files that manage the loading and batch reporting/altering. It also contains the implementation of all DBOS primitive objects; like tables, sets, and bitfields.
  • ./Sith is all the SITH code. There is also some useful generic GUI objects here too.
  • ./temp has some code that does not work
  • ./YAY has the code for the YAY parser specification tool
  • ./work is the compilation directory (as explained above)
  • ./work/A.class must have debugging information in the class file. I use the debugging info to do deeper reflection on the class definition and map DBOS instructions to Java methods.

kyle@lahnakoski.com