Noise

Kyle Lahnakoski kyle@arcavia.com
Sun Jan 6 00:01:02 2002


Someone wanted noise?

I have been working on the Database Cruiser (DBC) for quite some time
now.  The name "DBC" is quite unfortunate because it tries to
incorporate many of the Tunes ideas, and therefore is quite far from
having anything to do with databases.  But let us use the term "DBC" to
refer to my project without decomposing it's meaning in literal terms.

Anyway, the DBC is an attempt to create a reflective programming
environment.  My first goal is to build something close to Microsoft
Access and Lotus Notes with a sophisticated, multiple language,
interface.  Once the first goal is achieved I suspect I will be able to
work on Tunes aspects directly.

How far am I from my first goal?  Quite far.  Here is a list of what I
have done:
- Generic object interface (named SITH)
- Reflective environment that is a little better than Java.
- Functions are objects, so second order functions are easy
- Garbage collector (needed for any persistent environment)
- A single memory image holds all state information (a bitfield!)
- Standard format (called MSM format) for programs that is easily
extendable
- Compiles the MSM format  to *.class files
- Debugger, quite bad.
	
What am I working on now?
- I have recently converted the standard primitives (ints floats and
string) to bitfields (sets of bits of size 2^n).
- A graphic system that will be an improve and replace what I have
written already.

What is to come?	
- The graphic system is a little interesting, it uses the concept of
templates to define new classes of objects using examples.  This is much
like generics or C++ templates, but more general.  I believe Self has a
similar concept called prototypes.
- Compilers are just sophisticated serialization programs (think of
turning a parse tree into machine code).  I will be defining language(s)
(like lexx or yacc) that will turn program specifications into machine
code.  This same set of languages should be able to handle all
serialization. 
- Context is always needed to specify a program.  The DBC will use
bijective specifications to be able to convert between these contexts. 
I will need to make a bijection language.

So what?

You can see what I have written here
	http://www.arcavia.com/rd/dbc-html/index.html
I would like appreciate any feedback on the documents I have written.

You can download here
	http://www.arcavia.com/rd/dbc-html/download.html
I would not suggest downloading unless you have lots of time on your
hands and are willing to understand what the hell I have built.