Message from discussion
why forth over lisp?
Path: g2news1.google.com!postnews.google.com!s9g2000yqd.googlegroups.com!not-for-mail
From: Duane Rettig <du...@franz.com>
Newsgroups: comp.lang.forth,comp.lang.lisp,comp.lang.c,comp.lang.scheme,comp.lang.postscript
Subject: Re: why forth over lisp?
Date: Tue, 24 Aug 2010 09:10:35 -0700 (PDT)
Organization: http://groups.google.com
Lines: 25
Message-ID: <e729f7f3-a114-4591-8d90-f1812bb9ec0c@s9g2000yqd.googlegroups.com>
References: <f4cc0c8d-7f99-47ea-8235-33dcab8c213c@g6g2000pro.googlegroups.com>
<97ea7f26-11c5-4c65-8d75-c26f9d010b54@y11g2000yqm.googlegroups.com>
<23040748-e6fc-4da9-b224-91f7e5431a5f@i13g2000yqd.googlegroups.com>
<1fb0d4c5-28fb-4379-94f1-452c92eefed9@v8g2000yqe.googlegroups.com>
<bce5a844-68cf-4adf-8ccb-fcd9b01b6cc6@v41g2000yqv.googlegroups.com>
<cp6576ta78nkqsv9pbhf8srb4roc94g17u@4ax.com> <878w3xqdyx.fsf@temporary-address.org.uk>
NNTP-Posting-Host: 98.224.3.163
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1282666235 7388 127.0.0.1 (24 Aug 2010 16:10:35 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 24 Aug 2010 16:10:35 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: s9g2000yqd.googlegroups.com; posting-host=98.224.3.163; posting-account=aGEh5QoAAABuGan_Dwoukh9PssCDiBhh
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-us)
AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8,gzip(gfe)
On Aug 23, 1:19=A0pm, Nick <3-nos...@temporary-address.org.uk> wrote:
> George Neuner <gneun...@comcast.net> writes:
> > Lua 5 still is basically a stack machine - it's a variant of what's
> > generally called a "deep access" stack, in which the machine can
> > access "deep" stack elements directly. =A0Lua's variation does away wit=
h
> > push/pop/etc. top-of-stack instructions.
>
> I find it hard to attach the term "stack" to something that doesn't have
> "push/pop/etc". That is, to me, what makes it a stack rather than some
> other sort of data structure.
Think of a stack as a LIFO (Last In, First Out) queue. The question
is: what is going in and out? In this day and age of cache
management, a push/pop of a single natural word (4 or 8 bytes) is
ludicrous for performance, especially when the movement of the stack
pointer is sometimes accompanied by extra checks and/or guard page
faults. So think of a higher level program which uses activation
frames as a cached stack, which beef up performance in the area of
stack access. The frames are still layed into memory in LIFO fashion
(with exceptions, of course, like non-local exits and, in some
languages, Continuation Passing Style, but this does not remove the
importance of the stack at the lower level.
Duane