From: alex goldman
Subject: Re: what kind on programming is lisp?
Date: 
Message-ID: <3562354.0VnS9rUfcL@yahoo.com>
BR wrote:

> Couldn't the same be said for Forth?

Isn't Forth basically like PostScript? I had to learn a bit of PS for
plotting, and my impression was that it is not a very Human-friendly
language. Instead of writing those stack operations directly, I wrapped
them in Lisp functions to automate a few things, but mainly to avoid
accidentally calling functions with the wrong number of arguments (i.e.
without pushing the arguments on the stack first)

From: Darin Johnson
Subject: Re: what kind on programming is lisp?
Date: 
Message-ID: <cu1r7irl3t1.fsf@nokia.com>
alex goldman <·····@spamm.er> writes:

> Isn't Forth basically like PostScript?

Vaguely.  In that both use postfix and are stack based.
PostScript seemed to be definately inspired by Forth at
least.

> I had to learn a bit of PS for
> plotting, and my impression was that it is not a very Human-friendly
> language.

No programming languages is Human-friendly :-)  But people who've
been using infix or prefix notation for years have troubles
adjusting.  I've heard plenty of people accuse Lisp of being
unnatural and unfriendly, but again they were just not used to
the different prefix notation.

> but mainly to avoid
> accidentally calling functions with the wrong number of arguments (i.e.
> without pushing the arguments on the stack first)

Most Forth words have a very small number of arguments, so that
makes it less likely to call them with the wrong number of
arguments.

-- 
Darin Johnson
    "You used to be big."
    "I am big.  It's the pictures that got small."
From: Christopher Browne
Subject: Re: what kind on programming is lisp?
Date: 
Message-ID: <394qbfF5ucjh9U1@individual.net>
Darin Johnson <······@_usa_._net> wrote:
> alex goldman <·····@spamm.er> writes:
>
>> Isn't Forth basically like PostScript?
>
> Vaguely.  In that both use postfix and are stack based.
> PostScript seemed to be definately inspired by Forth at
> least.

Despite there being some similarities, I have always heard that this
was coincidental.

A sure difference is that Postscript uses a heap-like memory
management system allowing redefinition of functions, whereas the
traditional "Forth way" involves purely linear redefinitions that have
the result that if you FORGET a word, everything defined after that
disappears...

>> I had to learn a bit of PS for plotting, and my impression was that
>> it is not a very Human-friendly language.
>
> No programming languages is Human-friendly :-) But people who've
> been using infix or prefix notation for years have troubles
> adjusting.  I've heard plenty of people accuse Lisp of being
> unnatural and unfriendly, but again they were just not used to the
> different prefix notation.

Those in glass houses oughtn't throw stones :-).

Forth does everything on stacks; Lisp does everything with Way Too
Many Parentheses; both considerations have some truth, and have some
strengths too...
-- 
If this was helpful, <http://svcs.affero.net/rm.php?r=cbbrowne> rate me
http://linuxdatabases.info/info/postgresql.html
"Using Java  as a general purpose application  development language is
like  going big  game  hunting  armed with  Nerf  weapons." 
-- Author Unknown
From: Darin Johnson
Subject: Re: what kind on programming is lisp?
Date: 
Message-ID: <vf82o4kb.fsf@usa.net>
Christopher Browne <········@acm.org> writes:

> Despite there being some similarities, I have always heard that this
> was coincidental.

This could well be true.  One you decide upon a postfix stack based
computer a lot of similarities will occur naturaly.  DUP and other
stack manipulation words will be necessary for instance.  Also
I suppose, if one decides to create an prefix language then there
would be a natural trend towards structured delimiters.

-- 
Darin Johnson
    Where am I?  In the village...  What do you want?  Information...
From: Bernd Paysan
Subject: Re: what kind on programming is lisp?
Date: 
Message-ID: <nin0g2-jcr.ln1@miriam.mikron.de>
Christopher Browne wrote:
> Despite there being some similarities, I have always heard that this
> was coincidental.

After the outsider who went to PARC to show his Forth display graphics
system did post the origin of PostScript here, they gave in and said that
it wasn't coincidental. There's a curved path from Forth to PostScript, but
it's a definite "this inspired that" relation. The guys who saw the Forth
display graphics system wrote a predecessor of PostScript, so the Adobe
guys can claim that they didn't have seen Forth before. But they saw a
system written by people who have.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://www.jwdt.com/~paysan/
From: Anton Ertl
Subject: Re: what kind on programming is lisp?
Date: 
Message-ID: <2005Mar8.200719@mips.complang.tuwien.ac.at>
Christopher Browne <········@acm.org> writes:
[Forth and Postscript]
>Despite there being some similarities, I have always heard that this
>was coincidental.

The little documentation I have found on this subject is documented at

http://www.complang.tuwien.ac.at/forth/faq/faq-general-5.html#ss5.8

>A sure difference is that Postscript uses a heap-like memory
>management system allowing redefinition of functions, whereas the
>traditional "Forth way" involves purely linear redefinitions that have
>the result that if you FORGET a word, everything defined after that
>disappears...

Lots of errors to correct here:

Memory management: Postscript had similar stack/arena-based memory
management (IIRC based on begin/end, which work more like MARKERs than
FORGET in Forth).  Only with Level 2 did Postscript guarantee garbage
collection.  In the meantime, Forth has C-style ALLOCATE and FREE in
addition to the stack/arena-style dictionary.  FORGET is optional,
and, e.g., Gforth does not implement it.

Redefinitions: Postscript uses dynamic name binding; i.e., if you
redefine a name, all current users of the name are affected (like in
Lisp).  Forth uses static binding; If you redefine a name, current
users of the name are not affected, but later users of the name see
the new definition; if you want to change the behaviour bound to a
name dynamically, Forth has other mechanisms for that.

In any case, redefining a name has nothing to do with FORGET or memory
management.  If you redefine a word, it will just be added to the end
of the dictionary, and all earlier words just stay there (including
the word with the same name that is shadowed by your redefinition).

This has little to do with Lisp, so I set the followups to clf.

- anton
-- 
M. Anton Ertl  http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.complang.tuwien.ac.at/forth/ansforth/forth200x.html
From: Karl A. Krueger
Subject: Re: what kind on programming is lisp?
Date: 
Message-ID: <d0q63l$nd7$1@baldur.whoi.edu>
In comp.lang.lisp Christopher Browne <········@acm.org> wrote:
> Forth does everything on stacks; Lisp does everything with Way Too
> Many Parentheses; both considerations have some truth, and have some
> strengths too...

The analogy would be:

Forth does everything with stacks; Lisp does everything with trees.

	... or ...

Forth does everything ass-backwards; Lisp does everything with too
many parentheses.


(Is it too late to change the name of the language to TRIP, for
"Tree Processing"?)

-- 
Karl A. Krueger <········@example.edu> { s/example/whoi/ }