Half-baked UI goals/proposal
Mike Prince
mprince@crl.com
Wed, 28 Dec 1994 15:24:04 -0800 (PST)
On Tue, 27 Dec 1994, Chris Harris wrote:
> Goals/Proposal
> ==============
[snip]
I fully agree with modularity and expandability.
I like your analogy to a funnel. Raul (I think) and I discussed several
months ago a data encapsulation scheme. I was imagining a UI whereas all
requests would go into your UI funnel in the form of encapsulated data.
Your UI (actually a mini-interpreter) would decompose this "message",
executing what it could, and passing off sub-components to other modules.
If our OS has the capability to send messages to cells just by name then
to increase the capability of you UI, you'd create a cell with the
requisite functionality, and include a reference to it in your message to
the UI (the encapsulated data). Forth like example;
HelloWorld: // cell name
"Hello World!" PrintString return
Main: // another cell name
[ "Explicit print" PrintString "HelloWorld" CALL ] UI
end
This is actually pretty close to the way I envision the LLL looking. The
first HelloWorld creates a cell by the name "HelloWorld" which is put
into the domain directory. The cell pushes the string "HelloWorld!" onto
the stack and calls the cell PrintString. An underlying detail is that
each agent holds a variable naming it's output device, so PrintString
knows where to print (which window for example).
Main is the program we want to run. Again "Main" is created and put into
the domain directory. Main creates a block, the data enclosed in square
brackets, which is passed on the stack to the cell UI (our user interface).
The UI breaks the message down, first pushing the string and then
printing it. Then it reads in the string containing the name of our
"extension". CALL then calls our routine, printing "Hello World!" to the
device indicated by the agent.
This is a rough example, but it gets the idea across.
> With that said, there are some goals that each UI module should try to
> accomplish:
I'm fine with your goals. I'll try to get you some documentation for
what I'm working on so we stay in sync as much as possible. I'm
appreciative for you taking this idea and running with it. Hopefully
we'll have some code running together soon!
Mike