Re: PostLisp, a language experiment

astrobe_at_netcourrier.com
Date: 03/11/05


Date: 11 Mar 2005 05:03:55 -0800


>
> The worst thing about Forth IMHO is the stack clutter. When every
> function has some swaps, dups, overs and nips in it, it takes
> concentration to keep track of the stack in your mind. Sure, there
are
> stack comments, but when you write those, you might just as well use
> local variables instead.
>

Objection! This is not a problem that belong to Forth, but a problem
with you ( or those who wrote the programs you've seen ) who don't know
how to program in Forth.
In a Forth programmer eye, a program that has "stack clutter" is bad,
and begs to be rewritten/redesigned. Good programs minimize stack
juggling, that is nothing more than a DUP or a SWAP or an OVER to glue
things together. Such programs can be read by newbies just an hour
after their first exposure to the langage ( that is, when they finished
to learn Forth ;)

 Amicalement,
  Astrobe



Relevant Pages

  • Re: signed RSHIFT
    ... I therefore avoid both DUPs and DROPs for the results of predicates. ... If you want to actually *stack* the results of predicates it's inconvenient, ...
    (comp.lang.forth)
  • Re: Sleep function in vb.net
    ... Swaps in the Next thread Y code, stack, memory usage from storage, ... instruction and stack pointers are swapped, along with other registers such as the stack pointer. ... We use this for all our internet hosting servers - SMTP, POP3, IMAP, FTP and other internal client/server protocol servers. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Sleep function in vb.net
    ... Swaps in the Next thread Y code, stack, memory usage from storage, ... Cmp EAX, B ' Compare EAX with B, and saves the result to CPU's flags ...
    (microsoft.public.dotnet.languages.vb)
  • Re: where do the automatic variables go ?
    ... When dealing with stacks, if you don't want to pop the value off the stack, ... you need to use the stack pointer as a reference to whichever values you ... SP is the point of reference. ... the exchange opcode does just that, swaps values on the stack. ...
    (comp.os.linux.misc)