[comp.lang.forth] Forth and CS

wmb@MITCH.ENG.SUN.COM (Mitch Bradley) (03/01/91)

The thing that Forth taught me about Computer Science is that syntax
is a waste of time.  Not only is syntax a waste of time, in lots of
cases it is harmful, because it boxes you in and prevents you from
doing something next year.

Some Forth programmers have argued that most of CS is a waste of time.
I do not concur.

Mitch

bouma@cs.purdue.EDU (William J. Bouma) (03/02/91)

In article <9103011826.AA19197@ucbvax.Berkeley.EDU> Mitch Bradley <wmb%MITCH.ENG.SUN.COM@SCFVM.GSFC.NASA.GOV> writes:
>The thing that Forth taught me about Computer Science is that syntax
>is a waste of time.  Not only is syntax a waste of time, in lots of
>cases it is harmful, because it boxes you in and prevents you from
>doing something next year.

    What a lame thing to say! (esp. comming from someone who I agree
    with 98% of the time)  Syntax is a major conveyor of meaning.  How
    could anything be communicated (esp. programs) without syntax? Forth
    may have flexible syntax, but it definitely has syntax.

    Perhaps you meant that Forth teaches that syntax should be driven by
    semantics rather than the other way around?  That I could partially
    agree with.  But "syntax is a waste of time" is like saying that
    information in general is worthless.
 
>Some Forth programmers have argued that most of CS is a waste of time.
>I do not concur.

    If this newsgroup be any indication, many Forth programmers know
    even less about CS than they do about programming.
-- 
Bill <bouma@cs.purdue.edu>

John.Passaniti@f201.n260.z1.FIDONET.ORG (John Passaniti) (03/04/91)

 > The thing that Forth taught me about Computer Science
 > is that syntax is a waste of time.  Not only is syntax
 > a waste of time, in lots of cases it is harmful, because
 > it boxes you in and prevents you from doing something next
 > year.

     I had to think about what you wrote before I 
understood it.  I was going to argue that Forth did have a 
syntax-- otherwise, how could I hop between implementations 
without (much) relearning?  But I realized those words I 
know and love aren't so much a syntax, but rather a 
convention.

     I don't know if I agree that syntax is a waste of time 
or is harmful. That's getting on the edge of Forth as a 
religion, and I guess that when it comes to programming 
languages, I am an atheist.

     I turned my hatred for being boxed in by other 
languages into a love for understanding (computer) 
languages.  After all, you don't have to like the syntax of 
a language like Pascal or 'C' in order to appreciate how to 
write a compiler for it.  And when you understand that, you 
aren't far from understanding how to processing natural 
languages.

     Forth's greatest strength is its greatest weakness. 
While you can find "professional" Forth implementations, the 
lack of real standards across them means a Forth programmer 
has to expect some learning when going to a new 
implementation.

     Until that is minimized, I can't see Forth being 
popular in computer science courses.  (Incidentally, I have 
'C' programs that I can take with confidence between 
different machines, different compilers, and different 
operating systems.  I can give them to others without 
terribly much worry that they will work as expected.  I 
simply can't do that with Forth-- at least not yet.)

 > Some Forth programmers have argued that most of CS is
 > a waste of time.

     If I had to stab at why, I'd guess that most of the 
Forth people I know are more interested in practical 
applications than theory.

     Not that anyone cares, but my computer science career 
was cut short when the theory got to be boring, and the 
lure of doing practical and immediate work caught me.

--  
John Passaniti - via FidoNet node 1:260/230
UUCP: {smart-host}!ur-valhalla!rochgte!201!John.Passaniti
INTERNET: John.Passaniti@f201.n260.z1.FIDONET.ORG

cwpjr@cbnewse.att.com (clyde.w.jr.phillips) (03/04/91)

In article <9103011826.AA19197@ucbvax.Berkeley.EDU>, wmb@MITCH.ENG.SUN.COM (Mitch Bradley) writes:
> The thing that Forth taught me about Computer Science is that syntax
> is a waste of time.  Not only is syntax a waste of time, in lots of
> cases it is harmful, because it boxes you in and prevents you from
> doing something next year.
> 
> Some Forth programmers have argued that most of CS is a waste of time.
> I do not concur.
> 
> Mitch

I agree. What I find worthwhile in CS has been anticipated in FORTH.
But what I find useful in the real world has little to do with CS
and much more to do with the things I stated in my original post
which tho I implied were CS issues, they are not. FORTHS memory
management/overlay solution relates to CS. It's *optional* typing and
builds does does not. I do find forth more useful than CS to
do real work 8^).

I really argue that we don't want FORTH in CS but want CS to
be more relevant to real world programming issues. But then
it wouldn't be science...

Clyde

schmidtg@iccgcc.decnet.ab.com (03/04/91)

In article <13640@medusa.cs.purdue.edu>, bouma@cs.purdue.EDU (William J. Bouma) writes:
> In article <9103011826.AA19197@ucbvax.Berkeley.EDU> Mitch Bradley <wmb%MITCH.ENG.SUN.COM@SCFVM.GSFC.NASA.GOV> writes:
>>The thing that Forth taught me about Computer Science is that syntax
>>is a waste of time.  Not only is syntax a waste of time, in lots of
>>cases it is harmful, because it boxes you in and prevents you from
>>doing something next year.
> 
>     What a lame thing to say! (esp. comming from someone who I agree
>     with 98% of the time)  Syntax is a major conveyor of meaning.  How
>     could anything be communicated (esp. programs) without syntax? Forth
>     may have flexible syntax, but it definitely has syntax.
> 
>     Perhaps you meant that Forth teaches that syntax should be driven by
>     semantics rather than the other way around?  That I could partially
>     agree with.  But "syntax is a waste of time" is like saying that
>     information in general is worthless.


Interesting, I would categorize LISP as a language with a somewhat
"weak" syntactical structure, yet much of LISP's power results from
this.  In LISP, everything is pretty much a lump of "LISPstuff" where
meaning is imparted not by syntax, but rather by program structure,
much like it is in FORTH.  Both languages are "applicative" in that side
effects are avoided by LISP's list management structure and in FORTH by
the stack.  This encourages functions which are self contained expressions,
much like mathematical functions.  What is important is the transformation
performed by the function, little or no meaning is conveyed by the "weak"
syntax.  In fact, LISP and FORTH have much in common in this regard.
Whether or not syntax important depends upon the problem one is trying
to solve.  I do not believe syntax is a necessary requirement for a
general purpose language, in fact it is an additional constraint.  It
is easy to implement specialized languages on top of FORTH for just
this reason.  FORTH allows the programmer to decide how much syntax
is required for a given application.  On the other hand, a specialized
language such as YACC, is 99% syntax and this is fine if all you want
to do is to write programs which accept a certain grammer.


>>Some Forth programmers have argued that most of CS is a waste of time.
>>I do not concur.
> 
>     If this newsgroup be any indication, many Forth programmers know
>     even less about CS than they do about programming.
> -- 
> Bill <bouma@cs.purdue.edu>


I wonder what prompts you to say this, as I have seen no evidence of what
you are describing within this newsgroup.  Keep in mind that Computer
"Science" is still in it's infancy.  It is not some "holy grail" which
may not be questioned.  Certainly tradition has a lot to do with the
languages which are being promoted in contemporary C"S" courses and
unfortunately for C"S", FORTH has not been part of this tradition mainly
due to its "grass roots" non-academic origin.  This accounts for much
of the frustration which FORTH programmers have, since they are always
having to defend FORTH against the more "legitamate" languages.  I find
it interesting that some of the current trends towards "object oriented"
languages and "rapid prototyping" have been enjoyed by the more experienced
FORTH programmers for years.

Once again, drawing parallels between FORTH and LISP.  Both were concieved
by an individual, not by committee.  LISP's inventor was a professor at
MIT, FORTH's inventor was a frustrated programmer.  Interesting to speculate
on FORTH's current status if Chuck Moore had been in the right place at the
right time!  Both languages were intended to be "general purpose", although
LISP has gravitated to the AI community and FORTH has gravitated to the
embedded processor arena (I still consider FORTH to be an excellent "general
purpose" language and I am sure many would say this about LISP too).

The point that I am trying to make is that FORTH has not received the
widespread acceptance that it deserves, it has had no "Academic sugar daddy" 
or equivalent -- it's inventor was kind enough to place the language in
the public domain rather than turn it into an exclusive enterprise.  As
a result, proponents of FORTH have had to maintain a somewhat defensive
posture with respect to the academic establishment.  Simply because one
questions the tenets of traditional C"S" does not make one deserving of
being labeled as "ignorant".

Greg Schmidt
Senior Software Engineer
ALLEN-BRADLEY Inc. 
--

=============================================================================
Greg Schmidt -> schmidtg@iccgcc.decnet.ab.com
=============================================================================
"People with nothing to hide have nothing to fear from O.B.I.T"
	-- Peter Lomax
-----------------------------------------------------------------------------
Disclaimer: No warranty is expressed or implied.  Void where prohibited.
=============================================================================

jwoehr@isis.cs.du.edu (Jack J. Woehr) (03/05/91)

In article <13640@medusa.cs.purdue.edu> bouma@cs.purdue.EDU (William J. Bouma) writes:

>>(Mitch Bradley:)
>>Some Forth programmers have argued that most of CS is a waste of time.
>>I do not concur.
>(Bill:)
>    If this newsgroup be any indication, many Forth programmers know
>    even less about CS than they do about programming.

	RAAHHHTT ONNNN! We don't need no steenking Computer Science!
Realtime programmers am us!!!

	Seriously, Bill, it seems to me from my admittedly worm's-eye
view that about 66% of Comp Sci is parser and expression theory. Forth
ain't got no expressions. We are right and the rest of the world is
wrong, now get with the program, dude!!!
-- 
# ..!apple!dunike!nyx!koscej!jax       # "Therefore, the L-RD G-d  #
# ..!hplabs!hp-lsd!oldcolo!jax         #   sent him FORTH ..."     #
# {apple,hplabs,pacbell,ucb}!well!jax  #  - Genesis 3:23           #
# JAX on GEnie SYSOP RCFB 303-278-0364 # Member ANS Forth X3J14 TC #

bouma@cs.purdue.EDU (William J. Bouma) (03/06/91)

In article <3554.27d21955@iccgcc.decnet.ab.com> schmidtg@iccgcc.decnet.ab.com writes:
>Interesting, I would categorize LISP as a language with a somewhat
>"weak" syntactical structure, yet much of LISP's power results from
>this.  In LISP, everything is pretty much a lump of "LISPstuff" where

    Ah, I am known around here as "Mr. Lisp"! (But this is a Forth group)
    Lisp has more syntax than Forth.  It is always "(function arg arg ...)".
    True it is a simple syntax, but I wouldn't call it weak.  You can see what
    I mean by trying to send to the Lisp interpreter something not encased
    in parenthesis.  In Lisp it is easy to see what arguments are to what
    functions.  You can have functions with optional numbers of arguments
    and keyword arguments.  Forth cannot do this because of its weaker
    syntax.  What Forth can do that Lisp cannot is transparently return
    more than one value from a function.  ie. Lisp cannot have a function
    a2 which takes two arguments and a function b2 which returns two
    values and say "(a2 (b2))".  This comes for free in Forth because of
    the lack of syntax.  As always, tradeoffs depending on what you want
    to do.  To say absolutely (as some have) "syntax sucks" is idiotic.

>meaning is imparted not by syntax, but rather by program structure,

    Can you clarify the difference?  I think our discussions up to now
    have all been pretty consistent about what syntax means.  The way I
    see it the structure is the syntax.  Perhaps I just don't follow
    what you mean.

    Assembly language basically has no syntax.  But I find Lisp code
    easier to read than ASM because its syntax conveys meaning to me.
    I convey to the Lisp interpreter what is a separate list by the
    syntax of enclosing it in parenthesis.  While it is true that a list
    of machine code has meaning without having any syntax, that does not
    negate the fact that syntax conveys meaning.
 
>I wonder what prompts you to say this, as I have seen no evidence of what
>you are describing within this newsgroup.  Keep in mind that Computer
>"Science" is still in it's infancy.  It is not some "holy grail" which
>may not be questioned.  Certainly tradition has a lot to do with the

    How long have you been reading it? 8^)  Perhaps I was a bit harsh.
    I was certainly not implying that CS is perfect.  Only that some of
    the Forthers criticizing it don't seem to know much about what they
    are attempting to criticize.  Several times in this group I have
    seen people praising the virtues of Forth over that of other languages,
    but it is apparent that they have had very little experience with
    other languages.

>it interesting that some of the current trends towards "object oriented"
>languages and "rapid prototyping" have been enjoyed by the more experienced
>FORTH programmers for years.

    "object oriented" programming had been going on for a long time
    before so called "software engineers" jumped on the bandwagon and
    made the term popular.  That is not unique to Forth programmers.  It
    easy to look back now and say Forth was ahead of its time in this area.
    But why didn't someone publish about constructs in Forth to support OOP
    before any of the OO specific languages had been built?
 
>LISP has gravitated to the AI community and FORTH has gravitated to the
>embedded processor arena (I still consider FORTH to be an excellent "general
>purpose" language and I am sure many would say this about LISP too).
 
    I do not think Forth is a very good general purpose language.  The
    reason is same one (I believe) that has kept and will keep Forth from
    being accepted generally.  The lack of a type system is what has kept
    Forth down.  A language that deals only with characters and integers
    is a joke.  It is no coincidence that Forth gravitated to the embedded
    processor area, they don't need to deal with anything besides integers
    and characters.  Forth will not be accepted academically or be useful
    generally until it adopts a general consistent way to deal with a wide
    variety of types.

    Though Lisp is still used a lot in AI (whatever that is) it has
    gravitated back to general purpose.  Lisp has been my main programming
    language for 4 years and I don't think I have ever written any "AI".
 
>The point that I am trying to make is that FORTH has not received the
>widespread acceptance that it deserves, it has had no "Academic sugar daddy" 
 
    8^) Perhaps.  Perhaps it just isn't that deserving of attention from
    people who aren't tring to interface to hardware or aren't limited to
    64K of memory.
-- 
Bill <bouma@cs.purdue.edu>

bouma@cs.purdue.EDU (William J. Bouma) (03/06/91)

In article <1991Mar5.155721.24659@isis.cs.du.edu> jwoehr@isis.UUCP (Jack J. Woehr) writes:
>	Seriously, Bill, it seems to me from my admittedly worm's-eye
>view that about 66% of Comp Sci is parser and expression theory. Forth
>ain't got no expressions. We are right and the rest of the world is
>wrong, now get with the program, dude!!!

    (Where have I been?)
    
    Even if language recognition were useless I would still think it
    was worth studying.  How can we know the right way of doing something
    unless we explore all the possibilities?  I found it very interesting
    to discover what languages can be recognized by computer and how to
    write code to do such.  That Forth is so easy to parse makes it boring.
    Parsing is fun!

    If people want to criticize an area of CS, try Software Engineering.
-- 
Bill <bouma@cs.purdue.edu>

adam@visix.com (03/07/91)

In article <1991Mar4.211633.5080@visix.com>, adam@visix.com writes:
|> LALR parsing sucks ... syntax sucks.

In article <13699@medusa.cs.purdue.edu>, bouma@cs.purdue.EDU (William J.
Bouma) writes:
|> To say absolutely (as some have) "syntax sucks" is idiotic.

In article <1991Mar4.211633.5080@visix.com>, adam@visix.com writes:
|> (If you want your programs to look like algebra or natural language,
|> you have to parse them.  But parsing costs power and efficiency.)

cwpjr@cbnewse.att.com (clyde.w.jr.phillips) (03/08/91)

In article <13700@medusa.cs.purdue.edu>, bouma@cs.purdue.EDU (William J. Bouma) writes:
> In article <1991Mar5.155721.24659@isis.cs.du.edu> jwoehr@isis.UUCP (Jack J. Woehr) writes:
> >	Seriously, Bill, it seems to me from my admittedly worm's-eye
> >view that about 66% of Comp Sci is parser and expression theory. Forth
> >ain't got no expressions. We are right and the rest of the world is
> >wrong, now get with the program, dude!!!
> 
>     (Where have I been?)
>     
>     Even if language recognition were useless I would still think it
>     was worth studying.  How can we know the right way of doing something
>     unless we explore all the possibilities?  I found it very interesting
>     to discover what languages can be recognized by computer and how to
>     write code to do such.  That Forth is so easy to parse makes it boring.
>     Parsing is fun!
> 
>     If people want to criticize an area of CS, try Software Engineering.
> -- 
> Bill <bouma@cs.purdue.edu>

It's such a pleasure to see a discussion with passion, humour, knowledge
and wisdom and with none of the egoist malarky so prevelent in discussion
of *almost anything these days*.

Let's pat each other on the back. 8^)

I feel that language recognition is a fine pursuit but FORTH
I feel is correct in asserting that computer programming
should not force "expression" in the manner that CS compliant
languages do. This is classic FORTH philosophy as "expressed"
by Jack above. 8^)

I feel that FORTH is a right for it's uses. I agree that we should
know as much as we can before claiming we have a "correct solution"
but this is a rare luxury. ie I'll use FORTH till something
"more correct" grabs me...so keep up the good work and maybe
we'll share some fruit later on.

Writing code to parse particular dialects or expression domains
may have applicability to FORTH in the future, as we evolve into
browser and free form language domain usage. Regardless it will
be used in "mainstream" application and so it should.

I have a question, tho. Is "natyral"
( i like that sp mstke , my computer wouldn't )
language recognition a part of parser/expression theory
and or does it pose a eventual threat to all other forms
of constricted language parsing?

Clyde