2004-07-16 02:26:21 -04:00
|
|
|
FACTOR
|
|
|
|
|
|
|
|
|
|
This source archive contains sources for two distinct
|
|
|
|
|
bodies of code -- a Factor interpreter written in Java,
|
|
|
|
|
and a Factor interpreter written in C. The C interpreter
|
|
|
|
|
is a more recent development than the Java interpreter.
|
|
|
|
|
They both share a large body of library code written in
|
|
|
|
|
Factor.
|
|
|
|
|
|
|
|
|
|
Java interpreter
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
The Java interpreter includes a slick GUI with hyperlinked
|
|
|
|
|
inspection of source code, as well as stack effect checking.
|
|
|
|
|
|
|
|
|
|
build.xml - Ant buildfile for Java interpreter.
|
|
|
|
|
factor/ - source code for Factor interpreter written in Java.
|
|
|
|
|
org/objectweb/asm/ - helper library for Java interpreter.
|
|
|
|
|
Factor.jar - compiled, stand-alone Java interpreter
|
2004-07-21 22:45:43 -04:00
|
|
|
library/platform/jvm - JVM-specific Factor code
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
|
C interpreter
|
|
|
|
|
-------------
|
|
|
|
|
|
|
|
|
|
The C interpreter is a minimal implementation, with the goal
|
|
|
|
|
of achieving the highest possible flexibility/lines of code
|
|
|
|
|
ratio. It runs faster than the Java interpreter, and uses
|
|
|
|
|
far less memory.
|
|
|
|
|
|
|
|
|
|
native/ - source code for Factor interpreter written in C.
|
|
|
|
|
native/build.sh - build script for C interpreter.
|
|
|
|
|
native/f - compiled C interpreter - needs image to run
|
|
|
|
|
native/factor.image - cross-compiler output
|
|
|
|
|
library/platform/native - C interpreter-specific code
|
|
|
|
|
|
|
|
|
|
Notes on the C interpreter
|
|
|
|
|
--------------------------
|
|
|
|
|
|
|
|
|
|
At the moment it assumes little endian byte order, 32-bit
|
|
|
|
|
words. This pretty much means x86.
|
|
|
|
|
|
|
|
|
|
Very soon I will add image input and output in both byte
|
|
|
|
|
orders - this will allow Factor to run on powerpc and
|
|
|
|
|
sparc.
|
|
|
|
|
|
|
|
|
|
Moving to 64-bits would require a few changes in the image
|
|
|
|
|
cross-compiler, namely in the way it packs strings.
|
|
|
|
|
|
|
|
|
|
Not everything has been implemented yet. However, a lot
|
|
|
|
|
already works. Compare the output of this in the C and
|
|
|
|
|
Java interpreters to see how they differ:
|
|
|
|
|
|
|
|
|
|
"vocabularies" get describe
|