From: bobp@hal.com (Bob Pendelton)
Subject: Re: TECH: Virtual Reality Systems Discussion
Originator: hlab@milton.u.washington.edu
Organization: HaL Computer Systems, Inc.
Date: Tue, 29 Sep 1992 15:57:51 GMT



From article <1992Sep25.004254.12318@u.washington.edu>, by
thinman@netcom.com (Lance Norskog):

> } bobp@hal.com (Bob Pendelton) writes:
> } 
> } IN my copious :-) spare time I've been working on a similiar model.
> } My first step was to find a good, freely redistributable scheme or
> } lisp system. I've found ELK, which has the same copyright restrictions
> } as X to be a good choice and I'm working on making it somewhat more
> } suitable for my purposes.
> 
> Mmmm, tried ELK first.  It's a nice package, and Nixdorf paid
> to write it and maintain it for in-house use.  This is always 
> a good sign.  It's the best-documented Scheme of the bunch.

I've already ported ELK to DJGPP and I'm now working on porting it to
microsoft c7.00. I might even port it to turbo c. (I seem to be
collecting C compilers. :-)

I want to be able to distribute DOS binaries too. And I want to be
able to distribute portable source.

ELK isn't perfect. But, it is well structured, and the author has
followed the KISS principle so it is understandable. Also, since it
was designed to be extensible it is easy to add new primitive data
types and operators.

> I was planning to use C or incrementally compiled code exclusively
> during the actual screen update; this was when I stuck with
> interpreted Scheme.  The performance of compiled Scheme
> (1/3 of C for a simple PI algorithm) is good enough that this
> is an interesting idea.  

Why not just add the primitives you need to the language? Then you get
back that factor of 3 in exectution time of the primitives and keep
the flexibility of an interpreted language?

Not much of a difference I guess.

> By executable structures do you mean
> Scheme programs or "executable data structures " as in the
> Synthesis OS?

Not familiar with the Synthesis OS, so I can't talk about it.

By "executable data structures" I mean data structures that are
interpretable by some "conceptual" machine. This means they could be
linked list representations of scheme code that is interpreted by a
scheme interpreter, byte code that is interpreted by a byte code
interpreter, threaded code that is... or even machine code that is
interpreted by the hardware instruction set interpreter we so fondly
call the CPU.

At first I expect to use linked lists and the ELK scheme interpreter.
But who knows what I'll do later on. You're talking to a guy who once
wrote a lisp interpreter in microsoft 8K basic just to win a cup of
coffee :-) (PROGRAMMING IS FUN)

> The important idea is that you download or load scripts which
> don't get to actually do anything; they only create structures
> down below which actually do the screen/sound/etc.  The 
> separation of church and state, I mean policy and mechanism,
> is the heart of any really good OS architecture.  And this
> is a real-time operating system.

I like the phrase "tools, not rules." But, you're right. You have a
realtime system that executes "something" and another system that
executes programs that create and edit the "something."

The "something" has a lot in common with the databases used in modern
flight simulators. To a lesser degree it resembles PHIGS central
structure store.

                                Bob P.
-- 
Bob Pendleton             | As an engineer I hate to hear:
bobp@hal.com              |   1) You've earned an "I told you so."
Speaking only for myself. |   2) Our customers don't do that.
                   <<< Odin, after the well of Mimir. >>>
Newsgroups: sci.virtual-worlds