What languages influenced Moore during his development of Forth;
specifically, did he model Forth on, or was he influenced by exposure
to, any then-extant language?
What programming paradigm
(http://en.wikipedia.org/wiki/Programming_paradigm) would Forth belong
in? What would Moore have considered it?
What languages did Forth subsequently influence, if any?
Does anyone have a photograph of Moore that they would be willing to
allow use of under the GFDL, CC or other similar licence, or have a
verifiably public domain picture of Moore?
On a separate but related subject; is the cover image of "Starting
Forth" copyrighted? (I am assuming yes.)
Thanks in advance.
--
Regards
Alex McDonald
Thanks for letting us know. I reviewed recent changes briefly, and they
look pretty good.
> What languages influenced Moore during his development of Forth;
> specifically, did he model Forth on, or was he influenced by exposure
> to, any then-extant language?
At the time, the language 'everybody' used was Fortran. However, Chuck was
mostly reacting against Fortran rather than modeling an "improved" version
of it. The main influence was in the naming of DO ... LOOP, I, J, etc.
Forth's "pictured" output number formatting is very loosely modeled on
COBOL's pictured formatting. Almost everything else was derived from first
principles, based on what he felt he needed.
> What programming paradigm
> (http://en.wikipedia.org/wiki/Programming_paradigm) would Forth belong
> in? What would Moore have considered it?
Chuck was never a computer scientist, and I think he resisted the notion of
'programming paradigms' and pigeonholing languages in one or another.
> What languages did Forth subsequently influence, if any?
I'd love to know the answer to this. Possibly Postscript.
> Does anyone have a photograph of Moore that they would be willing to
> allow use of under the GFDL, CC or other similar licence, or have a
> verifiably public domain picture of Moore?
There's a photograph in the 'Evolution of Forth' article. IMO linking to
that article would be appropriate. The picture itself isn't really public
domain, at least no more than any other picture on the internet ;-)
> On a separate but related subject; is the cover image of "Starting
> Forth" copyrighted? (I am assuming yes.)
As much as the rest of the book. Actually, Leo and I both hate that image.
Cheers,
Elizabeth
--
==================================================
Elizabeth D. Rather (US & Canada) 800-55-FORTH
FORTH Inc. +1 310-491-3356
5155 W. Rosecrans Ave. #1018 Fax: +1 310-978-9454
Hawthorne, CA 90250
http://www.forth.com
"Forth-based products and Services for real-time
applications since 1973."
==================================================
It was my understanding from past conversation in comp.lang.forth that
exposure to Lisp played at least some part in the development of Forth.
Certainly two aspects of Lisp (interactivity and extensibility)
couldn't have escaped his notice.
Forth also wasn't the only interactive interpreted extensible language
at the time, and I wonder what role (if any) Smalltalk and Doug
Engelbart's NLS may have had, if any.
>> What programming paradigm
>> (http://en.wikipedia.org/wiki/Programming_paradigm) would Forth belong
>> in? What would Moore have considered it?
>
> Chuck was never a computer scientist, and I think he resisted the notion
> of 'programming paradigms' and pigeonholing languages in one or another.
Just because he didn't frame his views in terms of paradigm doesn't mean
that Forth itself can't be classed in with other languages. Forth is
clearly an imperative procedural language. One can certainly extend
Forth into other paradigms but that doesn't mean Forth itself can be
classed in those paradigms.
Forth more obviously doesn't follow the object-oriented paradigm,
although it has the primitives needed to implement object-based systems,
and there are plenty of extensions available to add it.
> There's a photograph in the 'Evolution of Forth' article. IMO linking
> to that article would be appropriate. The picture itself isn't really
> public domain, at least no more than any other picture on the internet ;-)
I don't see the value of a picture of Charles Moore in a page about
Forth. I would certainly see the value of a page for Charles Moore
himself, and then the Forth article could link to that. Regardless...
I don't know what Wikipedia's policies are on linking to external media
in the body of an article. I would imagine they would be against it,
since they can't control if (in this case) Forth Inc. will maintain that
URL for all time.
There is a picture of Charles on the colorforth.com web site that is
more current. One only has to do a "whois" lookup against that domain
to see contact information. Sending a message to him and asking if it
could be used would be appropriate.
>> On a separate but related subject; is the cover image of "Starting
>> Forth" copyrighted? (I am assuming yes.)
>
> As much as the rest of the book. Actually, Leo and I both hate that image.
My copy of "Starting Forth" has two images-- a woman typing on an
imaginary terminal and a picture of a man who looks kind of like the
Interpreter without the mustache typing on a real terminal. Both were
black line art against a dark blue cover. My copy also has the Forth
Inc.'s logo on it.
I had thought there was (like with "Thinking Forth") at least two
different covers.
You may find Chuck's draft for HOPL II informative:
http://colorforth.com/HOPL.html
He mentions Fortran, Algol, Lisp and even APL as influences (some
negative, some positive), and also the Burroughs 5500 assembly language
for DUP DROP and SWAP.
Ian
That guy always put me in mind of David Niven.
- Bill
> What languages did Forth subsequently influence, if any?
STOIC (Jonathan Sachs, MIT, ~1977) was an improved Forth, and LSE (Bob
Goeke, MIT, ~1978) was a simplified STOIC. I have a rewrite of LSE in C
that I might release sometime. Perhaps these are more reasonably
considered Forth dialects than separate languages.
MAGIC/L (Loki Software, ~1980) was an interactive Algol-like language on
a STOIC-derived foundation, an attempt to bring Forth's flexibility and
ease of development to an infix language.
Translex (ECD Corp., ~1977) was kind of a hybrid of Forth and TECO. Its
developers were aware of Forth and STOIC, so I'm sure there was
influence. The TOS was also the current cursor position on the current
editor screen! It was very flexible. One Translex application enabled
split-screen editing in Arabic and Roman characters on a 32 kilobyte
microcomputer: pretty advanced for the late '70s. Don't bother looking
it up on the web: another company now uses the name Translex for
something else.
--
---
John Doty, Noqsi Aerospace, Ltd.
---
His diagnosis of the hostility ... reflects the willful blindness of the
invader who assures himself that the natives are only made unfriendly by
some other provocation than his own. -Barbara W. Tuchman
As far as I know, Chuck was not familiar with any of those languages at the
time. Interactivity and extensibility were important values to him because
of the way he worked and his needs.
>>> What programming paradigm
>>> (http://en.wikipedia.org/wiki/Programming_paradigm) would Forth belong
>>> in? What would Moore have considered it?
>>
>> Chuck was never a computer scientist, and I think he resisted the notion
>> of 'programming paradigms' and pigeonholing languages in one or another.
>
> Just because he didn't frame his views in terms of paradigm doesn't mean
> that Forth itself can't be classed in with other languages. Forth is
> clearly an imperative procedural language. One can certainly extend Forth
> into other paradigms but that doesn't mean Forth itself can be classed in
> those paradigms.
I quite agree, I'm just explaining what his mindset was as I understood it.
> ...
> I don't know what Wikipedia's policies are on linking to external media in
> the body of an article. I would imagine they would be against it, since
> they can't control if (in this case) Forth Inc. will maintain that URL for
> all time.
There is a link to the article in the "History" list of references.
> ...
>
>>> On a separate but related subject; is the cover image of "Starting
>>> Forth" copyrighted? (I am assuming yes.)
>>
>> As much as the rest of the book. Actually, Leo and I both hate that
>> image.
>
> My copy of "Starting Forth" has two images-- a woman typing on an
> imaginary terminal and a picture of a man who looks kind of like the
> Interpreter without the mustache typing on a real terminal. Both were
> black line art against a dark blue cover. My copy also has the Forth
> Inc.'s logo on it.
>
> I had thought there was (like with "Thinking Forth") at least two
> different covers.
Yes, there was one for the initial publication in ~1982 (blue background
with illustrations from the book), and a different one with the 2nd Ed. in
about 1986. The second one is the one we hate. Prentice Hall designed it
without any input from us, and by the time we saw it it was too late.
Oops, thanks to Ian's reminding us of Chuck's draft for that article, I see
that he does list LISP as an influence. I certainly don't remember his ever
referring to it, though. At the time I first met Chuck I was personally
quite taken with APL, which is also sort of interactive and extensible, and
I made a point of asking if he knew anything about it. As I recall, he had
seen and rejected it because of its weird symbols and right-to-left parsing.
So your claim is that he invented interactivity and extensibility ex
nihilo and paid no attention to other existing languages and systems at
the time that had such properties?
Forth is a great synthesis of a number of ideas, but in my study of
computing history, none of the ideas in Forth are unique. Forth may be
unique in how it combined the ideas, but decomposed and stripped to
their essence, they all existed prior to Forth.
> Yes, there was one for the initial publication in ~1982 (blue background
> with illustrations from the book), and a different one with the 2nd Ed.
> in about 1986. The second one is the one we hate. Prentice Hall
> designed it without any input from us, and by the time we saw it it was
> too late.
Now I'm curious what the second edition looks like. Hopefully someone
will scan theirs and put it online somewhere.
That's ironic, given where ColorForth went. In ColorForth, Moore
apparently views words as an indivisible entity in much the same way
that APL programmers see characters composed of multiple characters (for
example the quote-quad) as a single indivisible entity. I don't see
much conceptual difference between the two.
Incidentally, you used the qualifier "sort of" prior to "interactive"
above. In what way is APL not interactive relative to Forth, which I
presume you consider interactive without qualification?
Smalltalk could not have had a role, because it came later. And it
started out from very high-level (the more pragmatic Smalltalk-76 was
not quite what Alan Kay had in mind) and AFAIK was not vey well-known
until Smalltalk-80.
- 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.forth200x.org/forth200x.html
EuroForth 2006: http://www.complang.tuwien.ac.at/anton/euroforth2006/
> > What languages did Forth subsequently influence, if any?
>
> I'd love to know the answer to this. Possibly Postscript.
I know of a few:
REBOL (http://www.rebol.com). The designer of the language
specifically mentioned the influence of Forth in terms of having a
compact implementation, but the language is not Forth-like otherwise.
Joy (http://en.wikipedia.org/wiki/Joy_programming_language). Sort of a
Forth/Lisp cross, slanted toward theory more than everyday use. Its
biggest contribution was to get people talking about and experimenting
with "concatenative languages." A bunch of languages came out of this,
most notably...
Factor (http://en.wikipedia.org/wiki/Factor_programming_language). A
Joy-inspired language with more emphasis on practical applications.
The progress of this language has been impressive. The author has a
cross-platform Windows/OSX/Linux implementation, including an
optimizing compiler, GUI support, and a rich-text browser.
> Factor (http://en.wikipedia.org/wiki/Factor_programming_language). A
> Joy-inspired language with more emphasis on practical applications.
> The progress of this language has been impressive. The author has a
> cross-platform Windows/OSX/Linux implementation, including an
> optimizing compiler, GUI support, and a rich-text browser.
This looks very good to me.
By the way, in an earlier thread -IF was discussed. (It doesn't consume
the number if it's negative.) Factor has IF* that preserves the item
if it's not false:
{ 2 3 5 } [ "The object is " write . ] [ "False." print ] if*
The object is { 2 3 5 }
f [ "The object is " write . ] [ "False." print ] if*
False.
Unfortunately, you're straining what's left of my recollections of APL, but
the most important thing is that outside the kernel APL is (or was) strictly
interpretive, and user-defined routines are hence significantly slower than
kernel ones. Also, I remember a lot more rules about what you could type
when, although I can't be more specific than that. My impression at the
time was that APL was a lot more cumbersome to use.
There were a lot more attempts at interactive programming than the ones
mentioned above. The obvious example was BASIC, of course, but I also
remember a late-60's thing called QUICKTRAN which was a sort-of interactive
FORTRAN. I had a little experience with both, but I don't know whether
Chuck did.
Of course Chuck didn't "invent" interactivity and extensibility. As he has
described, he started with an interpreter that could process statements on
punch-cards fed to a mainframe. The critical event was in the early 70's,
when he was sitting on a stool in front of a computer with 16K bytes of
memory and only TTY paper tape and keyboard for I/O, and had to figure out
how to program the *&^%! thing. None of the existing models were even
remotely appropriate for that situation, so he developed his own approach.
> James wrote:
>
>> Factor (http://en.wikipedia.org/wiki/Factor_programming_language). A
>> Joy-inspired language with more emphasis on practical applications.
>> The progress of this language has been impressive. The author has a
>> cross-platform Windows/OSX/Linux implementation, including an
>> optimizing compiler, GUI support, and a rich-text browser.
>
> This looks very good to me.
>
> By the way, in an earlier thread -IF was discussed. (It doesn't consume
> the number if it's negative.) Factor has IF* that preserves the item
Wouldn't that be: doesn't consume the number if it's non-zero?
Like the old name for ?DUP -DUP
--
Coos
CHForth, 16 bit DOS applications
http://home.hccnet.nl/j.j.haak/forth.html
I guess we were both wrong. Mr. Fox wrote:
> -IF is roughtly the functionally equivalent to the ANS sequence
>
> : -IF
> POSTPONE DUP POSTPONE 0< POSTPONE IF ; IMMEDIATE
So -IF preserves the number in any case.
While reading papers on the E.W.Dijkstra website I came across the
following:
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD00xx/EWD28.html
Dijkstra describes a two stack machine with a data stack and a return
stack. He presents enough detail of this conceptual machine -- one that
he feels would
not be efficient enough as an actual implementation -- to establish
many of
the language features that I recognize and enjoy in Forth. At the end
he lists John McCarthy as one of his inspiring listeners. This paper is
dated January, 1962. Charles
Moore's bio on colorforth.com mentions his studying mathematics at
Stanford for two years starting in 1961, including learning LISP from
John McCarthy. It would be
interesting to know if, as a graduate student working with McCarthy, he
had ever seen this paper.
Dijkstra demonstrated a strong urge to create as simplified
language/conceptual-machine as possible. Charles Moore was likewise
driven to create and implement simplified
language/development-environments and later, simplified machine
implementations. Even taken as completely separate activities with no
crossover -- though the times and degrees of seperation are tantalizing
-- combined with the actual models they arrived at give some sense of
the problems and compu-cultural environment in which they worked. In
any case, admirable thinking abounded.
'Hoping you find this interesting,
Tony Bartolini
Fascinating, thanks for that.
I first heard of Dijkstra in the early 70's, when I was giving papers on
Forth and folks asked how it related to "structured programming". Someone
provided references to his papers on this subject, which were hot news at
the time, and I passed them on to Chuck. He had not read those papers, and
his only comment was that "it just seemed like good programming practice" to
him. Whether he had followed Dijkstra's earlier work is something only he
could answer.
I suspect Liz meant that most machines were mainframes without time-
sharing terminals. IIRC, APL was batch-processed, just like everything
else at that time (maybe there was T-S at specialized installations,
but never where I was--I didn't get into T-S --and we used Teletypes--
until the HP-2000 era, sometime in the 1970's). So interactivity was
for most languages just a gleam in a systems-designer's eye.
--
Julian V. Noble
Professor Emeritus of Physics
University of Virginia
QUICKTRAN was in the family of interpreted FORTRANs so it didn't go
through a complicated compile, link, execute cycle and short jobs
only had about 1 minute turnaround (as batch jobs). So by dedicating
several 1-hr periods per day as debugging time with fast turnaround,
mainframe centers (and I remember fondly the one at U of Wisconsin
in 1967!!) greatly improved the productivity of the programmers.
There was also an MIT-based Forth variant whose name slips my memory,
but those of my friends here with fewer "senior moments" to their
credit will doubtless remember its name. IIRC it had some small,
eccentric differences from Forth that AFIK didn't make it any better.
Thanks, John. STOIC, of course! I saw it in action and cannot regard
it as "improved" in any sense. Just different.
Curious; in http://www.colorforth.com/HOPL.html he says
"At MIT, John McCarthy taught an incredible course on LISP. That was my
introduction to recursion, and to the marvelous variety of computer
language." (McCarthy was at MIT from 1958-62 prior to going to
Stanford).
> It would be
> interesting to know if, as a graduate student working with McCarthy, he
> had ever seen this paper.
>
> Dijkstra demonstrated a strong urge to create as simplified
> language/conceptual-machine as possible. Charles Moore was likewise
> driven to create and implement simplified
> language/development-environments and later, simplified machine
> implementations. Even taken as completely separate activities with no
> crossover -- though the times and degrees of seperation are tantalizing
> -- combined with the actual models they arrived at give some sense of
> the problems and compu-cultural environment in which they worked. In
> any case, admirable thinking abounded.
>
> 'Hoping you find this interesting,
>
> Tony Bartolini
George Hubert
> I suspect Liz meant that most machines were mainframes without time-
> sharing terminals. IIRC, APL was batch-processed, just like everything
> else at that time
APL was timeshared from the start. The first real implementation,
APL\360, included a custom timesharing O/S. There never was a keypunch
that could handle those crazy characters!
I first encountered APL in 1969 as APL\1130, not time shared, but
interactive using the built-in console on the IBM 1130. Very, very,
slow: not enough room in memory for a workspace, all your variables and
functions were on (slow) disk, swapped in/out.
In 1970, as a member of the SIPB (http://stuff.mit.edu/sipb/), I helped
talk the MIT EE department into allowing general student access to an
APL\360 system they had. This was a virtual machine under CP/67, so it
was two-layer timesharing. Virtualization seems all the rage now, but it
goes back a long way.
In those days, APL users carried special Selectric typeballs in their
pockets: the standard typeballs lacked the special APL characters.
> John Doty wrote:
>
>> Alex McDonald wrote:
>>
>>> What languages did Forth subsequently influence, if any?
>>
>>
>> STOIC (Jonathan Sachs, MIT, ~1977) was an improved Forth, and LSE (Bob
>> Goeke, MIT, ~1978) was a simplified STOIC. I have a rewrite of LSE in
>> C that I might release sometime. Perhaps these are more reasonably
>> considered Forth dialects than separate languages.
>
> Thanks, John. STOIC, of course! I saw it in action and cannot regard
> it as "improved" in any sense. Just different.
>
The principal improvement was the elimination of the text interpreter,
thereby removing all of the confusing [thing] kludges that afflict
traditional Forths. To some extent this was hidden by the way way Jon
let complexity grow back elsewhere: he loved tricky stack gymnastic
words, for example.
From http://www.colorforth.com/HOPL.html, in Chuck's own words:
| APL was also a topical language, with its weird right-left parsing.
| Although I admire and emulate its operators, I'm not persuaded they
^^^^^^^^^^^^^^^^^^^^^^^^^
| constitute an optimal set.
For me, this means both LISP and APL had a strong influence.
-marcel
BCPL, an Algol like language which greatly influenced C, used @ and ! infix
operators to fetch and store. Maybe that usage was around at the time (it
didn't survive into C), or maybe Forth got it directly from BCPL. PML.
--
GST+NPT=JOBS
I.e., a Goods and Services Tax (or almost any other broad based production
tax), with a Negative Payroll Tax, promotes employment.
See http://member.netlink.com.au/~peterl/publicns.html#AFRLET2 and the other
items on that page for some reasons why.
No, actually Manfred Von Thun worked it out independently. Only after that
did people notice the parallel evolution that had happened. Then, of course,
some hybridisation happened.
A bunch of languages came out of this,
I've actually done something in this area myself, a project I call Furphy
which I've mentioned on news:comp.lang.forth before. PML.
I asked him and he said he hadn't ever seen it.
Thanks very much for asking him. It sure speaks to the ferment of the
times that the low level peices should boil up in very similar ways in
multiple places at roughly the same time. It was a tantalizing
potential linkage, now laid to rest.
I still highly recommend the article to Forth lovers. It shows an
interesting approach to breaking down assumptions in programming
languages. An incredibly strong drive to simplify. It helped me further
appreciate aspects of the language I actually get to use to solve
problems: why they feel so atomic.
Thanks again Jeff,
Tony Bartolini
> Alex McDonald wrote:
> >
> > The Forth language entry at http://en.wikipedia.org/wiki/Forth is
> > getting another update. I've read
> > http://www.forth.com/resources/evolution/index.html, and that's
> > provoked some questions for clf.
> >
> > What languages influenced Moore during his development of Forth;
> > specifically, did he model Forth on, or was he influenced by exposure
> > to, any then-extant language?
>
> BCPL, an Algol like language which greatly influenced C, used @ and ! infix
> operators to fetch and store. Maybe that usage was around at the time (it
> didn't survive into C), or maybe Forth got it directly from BCPL. PML.
What BCPL -- I believe there were several variants; but not the one I
saw on Tenex, or in the manual by Richards dmr has on his website:
those had prefix 'rv' for @ (fetch) and infix '=' for ! (assign).
BCPL does have untyped word/cell data _semantics_ much like Forth, and
a uniform function-call method that allows some playing about with the
stack though not as directly or completely as Forth.
- David.Thompson1 at worldnet.att.net
>> Alex McDonald wrote:
>> >
>> > The Forth language entry at http://en.wikipedia.org/wiki/Forth is
>> > getting another update. I've read
>> > http://www.forth.com/resources/evolution/index.html, and that's
>> > provoked some questions for clf.
>> >
>> > What languages influenced Moore during his development of Forth;
>> > specifically, did he model Forth on, or was he influenced by exposure
>> > to, any then-extant language?
>>
>> BCPL, an Algol like language which greatly influenced C, used @ and
>> ! infix operators to fetch and store. Maybe that usage was around
>> at the time (it didn't survive into C), or maybe Forth got it
>> directly from BCPL. PML.
> What BCPL -- I believe there were several variants; but not the one I
> saw on Tenex, or in the manual by Richards dmr has on his website:
> those had prefix 'rv' for @ (fetch) and infix '=' for ! (assign).
In [1], := is used for assignment. ! is the indirection operator,
more-or-less like C's *. (Not quite the same because it's also used
for array indexing.) Whether ! is a fetch or a store depends on
whether it appears on the left-hand or right-hand side of an
assignment operator. @ is like C's addressof (&) operator.
Andrew.
[1] M. Richards and C. Whitby-Strevens, BCPL: The Language and its
Compiler, Cambridge University Press, Cambridge, UK, 1979.