Yeah, the *implementation* of Forth I tried to learn used frames as
objects and approached OO in some key ways as I recall. OF course, I
have blissfully forgotten all that in the dream of the Dreamcard
Revolution. ;-)
On May 2, 2005, at 8:02 AM, Dennis Brown wrote:
On May 2, 2005, at 10:25 AM, Geoff Canyon wrote:
I'm not sure how to catalog Forth, but it's not OO (inherently --
there are OO implementations). It's procedural, certainly, but the
inherent stack gives it a definite functional feel.
Forth is not really a high level language any more than assembler
is. It is an alternative machine language based on a double stack
architecture. There have been hardware implementations of Forth
as the native machine instruction set. When emulated, the "Code"
just consists of a list of addresses to the actual machine code for
the native functions, or addresses of "higher level" defined
function (uses a flag bit to tell which). This makes it execute
much faster than "byte code". You can implement a higher level
language within the syntax of Forth because of its extensible
nature. "Words" are defined from other words in an interpretive
environment. Because of the double stack architecture, data
arguments are passed and returned on one stack and return addresses
are in the other stack. It makes a very efficient and powerful
architecture for developing real time machine controllers with a
tiny amount of memory. You are free to define "words" that
implement an OO environment if you choose. You could even create
Rev using this as the lower level "P code", or an operating system
for that matter.
Dennis
_______________________________________________
use-revolution mailing list
[email protected]
http://lists.runrev.com/mailman/listinfo/use-revolution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Shafer, Co-Chair
RevConWest '05
June 17-18, 2005, Monterey, California
http://www.altuit.com/webs/altuit/RevConWest
_______________________________________________
use-revolution mailing list
[email protected]
http://lists.runrev.com/mailman/listinfo/use-revolution