Creating som.obj
The self-replicate
property has been achieved in this release.
The whole som-in-som source consisted of the following files (in Som)
(sequence according to the order of loading the file):
load
"string-s.txt"
load "compile-h-s.txt"
load "list-s.txt"
load "symtab-s.txt"
load "token-s.txt"
load "parse-h-s.txt"
load "stmt-s.txt"
load "parse.som"
load "icode-s.txt"
load "gencode-s.txt"
load "macro-s.txt"
load "main-s.txt"
"parse.som" is generated from "parser\pgensom.exe", the parser
generator. som24 grammar is in the file "parser\parse-s.txt". The
file "som.txt" is the master file. It can be compiled into
"som.obj" as follows:
c:>som
som.txt
This will create som.obj and som.lst (the listing file). This
"som.obj" is the executable s-code of the som-v24 system.
(However
the object for som-v24 is "som0.obj", it is renamed to prevent
overwriting by accident). "som.obj" is self-compiled, that is the
som.txt is compiled into its own object. Finally, the
self-replicate
property has been achieved in this release. (that is "som.obj" is
exactly the same as "som0.obj"). The library source file is
"lib2.som".
In terms of speed, som-v24 virtual machine has been engineered to be as
fast as som-v17 (if not faster).
12 Jan 2007