Newsgroups: comp.lang.forth
Path: utzoo!utgpu!cunews!csi.uottawa.ca!news
From: cbbrowne@csi.uottawa.ca (Christopher Browne (055908))
Subject: Re: Forth in CS
Message-ID: <1991Mar6.222013.19678@csi.uottawa.ca>
Sender: news@csi.uottawa.ca
Nntp-Posting-Host: prgw
Organization: CSI Dept., University of Ottawa
References: <1991Mar4.050505.27571@csi.uottawa.ca> <1991Mar4.143704.13146@cbnewse.att.com> <13693@medusa.cs.purdue.edu>
Distribution: na
Date: Wed, 6 Mar 91 22:20:13 GMT

In article <13693@medusa.cs.purdue.edu> bouma@cs.purdue.EDU (William J. Bouma) writes:
>
>    This a reply to Clyde Phillips reply to Chris Browne.  It is
>    mainly an attempt to get him to clarify a number of cryptic
>    remarks he made in that post.

Minor question: Which "him" is to clarify?  I think you mean Clyde...
I'll try do some clarification anyways...

>In article <1991Mar4.143704.13146@cbnewse.att.com> cwpjr@cbnewse.att.com
>(clyde.w.jr.phillips) writes:

>>Are CS people only interested in "language Design"? No wonder they don't
>>respect FORTH, it says they have no clothes...
>
>     Basically, "CS people" are interested in Computer Science.  Language
>     Design is ONE are of interest for what should be obvious reasons.  I
>     am surprised that you would think it the ONLY area as several others
>     are listed below in plain sight.  

     Hey, if we're talking about the way Forth is put together, then
that's certainly "Language Design."  The BEAUTY of Forth is that you
are always in the process of redesigning the language (i.e. - the
language of the application - not usually the ENTIRE Forth language).
The people reading this group are CERTAINLY interested in this area.
And it's worth contrasting Forth Language Design with the classical CS
forms of language design.

>Browne> Computing theory is not happy with languages that are not constant
>>
>>Is this the heart of CS?

     It's perhaps not the MOST important part of CS (I'm not sure what
IS the most important area of CS), but it's certainly at the heart of
computing theory.  You've got to have some way of communicating to the
computer just what you want it to do.  That's language, and language
is undoubtedly of great importance.

>Browne> Forth will be interesting to people into architecture design -
>
>     This was the only place I found disagreement with Browne's post.
>     I am not convinced Forth has anything new to contribute in this
>     area.  If so, what exactly?

     Well, there's certainly been some work lately on Forth chips.  It
looks like they may actually be good for things other than "merely"
running Forth.  (The REST of the world wants to run things like C,
Fortran, Pascal, and minor mods to the Forth chips make 'em good for
these other languages.)  People have used Forth ideas to make the
processors faster.  I think that qualifies as "architecture design."

>Browne> What "new" control structures have been created in Forth? I'm not sure
>Browne> Forth has introduced ANY new control structures...
>>
>>But youre point was we don't abide by CS. If we use every existing control
>>structure you guys have why would we need new ones just to distinguish
>>ourselves?

"us guys"?  That seems a little mean...  

The point was that the author I was apparently originally responding
to made a statement about "control structures introduced through
Forth."  My point was that there don't seem to really be any uniquely
introduced through Forth.

>     What?  The "point" has always been to find a reason why Forth would
>     be of any interest to CS.  Browne is simply stating it has done 
>     nothing new in this particular area, thus we can dismiss it (area) as
>     a possibility.
Exactly.  
>     Who is this "we"?  Am I included?  Is Browne?
>     One of the problems here is you are reading Browne as though
>     he is not included in the "we".
I too wonder who "us" and "you/them" are supposed to be...

>>I guess I should have looked at your bottom line...
>
>     I think the problem is you are looking only at single lines and not
>     thinking about the large picture.  Browne is just telling you how
>     CS probably sees Forth.  Don't take it out on him, it isn't his 
>     fault.  You think it's wrong, tell us why, we don't read minds.

I guess I'm a criminal because I've been studying CS over the years...
The point of the article was to supply SOME picture on how "real CS"
people see (or more likely, don't see) Forth.  I've spent enough years
around such people/places that I have SOME insight on the issue.  I
don't particularly want to give offense, or start a flame war, but I
don't appreciate being blasted for HAVING some CS education.  To the
Forth world, spending time doing CS seems to be a black mark.  

I think that not all of CS has value, but that some of it DOES.
Forthers try to look at things very pragmatically - that's where the
language came from.  Forth started as a hack to control telescopes,
and then grew.

Compared to Forth, Fortran started as a language to simplify
programming scientific computations.  The reasons FOR the computations
were pretty "theoretical", but the language's design has always been
pretty pragmatic.

C was developed in a research laboratory to help design operating
systems.  There's certainly a lot of "theory" and NON-pragmatic
features there.  They had opportunity to say "What would we like?" as
well as Forth's "What do we need MOST?"

The Pascal family of languages grew up in the academic environment,
and thus are "Conceptually Beautiful," at the expense sometimes of
being practically useful.

All of these different sources of computer languages have had SOME
worthwhile insights.  Some of these insights may be worth patching
into Forth.

One advantage to using Forth is that it is possible to patch features
in in reasonably attractive ways.  Originally, Forth did not have a
CASE statement.  It was fairly straightforward to add it for those
applications that could use CASEs.  

That's not possible for these other languages.  In the more strongly
typed languages, it's almost impossible to hack in any MAJOR changes.
In Forth, I can add operations that use "algebraic" notation rather
than Reverse Polish.  In Modula-2, it's just impossible.

I feel that we should look at some of the "neat features" that get
added to other languages, and see if there's a good way to put the
best of them into Forth.  In this way, it's certainly a GOOD THING to
look at what "Computer Science" is doing.
-- 
Christopher Browne
cbbrowne@csi.uottawa.ca
University of Ottawa
Master of System Science Program
