Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

'Real programmers ...'

414 views
Skip to first unread message

dxforth

unread,
Sep 15, 2021, 3:16:56 AM9/15/21
to
On 15/09/2021 16:39, Anton Ertl wrote:
> dxforth <dxf...@gmail.com> writes:
>>I vaguely recall something called assembler. What programmers used
>>before they decided they needed to be coddled.
>
> Assembly language is for wimps. Real men program in machine language.
> And not machine language on a sissy architecture that gives good
> performance for consecutive instructions, but on the good old hardware
> where, for best performance, the next instruction to be executed
> resides at some distance on the drum.

Perhaps this deserves a thread of its own - before things once again
revert to the mean.

Keeping that thought, was it ever likely a language as obtuse as Forth
could be popular - or does it require a particular type of programmer,
or indeed, dreamer?

Anton Ertl

unread,
Sep 15, 2021, 7:18:52 AM9/15/21
to
dxforth <dxf...@gmail.com> writes:
>Keeping that thought, was it ever likely a language as obtuse as Forth
>could be popular

I have no idea why you describe Forth as obtuse (and which meaning of
"obtuse" you have in mind).

Was it ever likely that Forth could be popular? For some time, Forth
was quite popular although not as popular as BASIC or Pascal. At that
time, Forth provided a memory consumption advantage, and, compared to
BASIC, a speed advantage, and much of its popularity at the time
stemmed from that; another basis for it's popularity is the feeling of
mastery and understanding that Mark Woodworth mentioned in April.

As memory sizes increased, the weight of the memory consumption
advantage became less and less; and the need for features to
facilitate translating the additional memory into more functionality
became more and more important. The Forth mainstream was not
particularly keen at picking up such features, although there were
efforts like Fifth (Cliff Click and Paul Snow) that went in that
direction. So Forth lost many programmers to languages that had such
features. OTOH, Fifth did not become more popular than Forth, so it's
unclear if we would not have lost these programmers anyway. Other
efforts in that direction, but much later (mostly after many had been
lost), are Factor, Oforth and Eighth.

Another aspect is syntax. Cobol was designed with the idea of having
an easy-to-read and -write syntax for non-mathematicians. Fortran and
Algol were designed with mathematical (algebraic) notation in mind.
The Algol approach won out, so it's not that people are only willing
to program in prose. In addition, programming in currently popular
languages has many notational differences from mathematics, so it's
not that the teaching of mathematics in school limits the syntax that
programming languages can use. So I think that Forth's stack-based
syntax has (had) a chance, especially if it offers an advantage that
programmers value. But of course infix syntax has a headstart once
there is enough memory, so one needs an advantage to compensate that.

The "mastery and understanding" aspect remains as a source of
popularity, but it's a limited popularity. More programmers choose a
language for a project to be able to program (and maintain) some
functionality relatively easily than for the feeling of mastery and
understanding. And these two aspect are at odds with each other, also
within Forth. A system like Gforth has many features that make it
convenient for programming, but it is too large and complicated to
inspire the feeling of mastery and understanding. OTOH, eForth or
JonesForth give that feeling, but do people write significant
applications with them? I don't think so.

- 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 2021: https://euro.theforth.net/2021

Nils M Holm

unread,
Sep 15, 2021, 7:55:09 AM9/15/21
to
Anton Ertl <an...@mips.complang.tuwien.ac.at> wrote:
> [...] OTOH, eForth or
> JonesForth give that feeling, but do people write significant
> applications with them? I don't think so.

You can always roll your own FORTH (meeting the mastery and
understanding aspect) and then write programs in it. I have
always thought this to be the most fun approach, and I have
written about a dozen FORTH system in the past decades and
developed some programs in them. Among others:

- a floppy that boots into a VT52 emulator in a split-second
- a library for controlling the stepper motors of a model
vehicle via the parallel port
- a thin file system layer for block-oriented FORTH
- an operating system for the PDP-11
- several compilers and meta-compilers
- etc...

I have never told anyone about it or written about it. Some
of the stuff -- or parts of it -- may be somewhere on my
homepage.

More recently I have written a FORTH-79 system (with some
influence by 83 and FIG) that runs on the 8086 under DOS or
in stand-alone mode. Then I have developed a decompiler,
meta-compiler, double word package, etc for it. It was a lot
of fun.

The idea of FORTH is there and everybody can play with it
and enjoy it. "Writing apps" is only one way to do that.

--
Nils M Holm < n m h @ t 3 x . o r g > www.t3x.org

dxforth

unread,
Sep 15, 2021, 9:12:43 AM9/15/21
to
On 15/09/2021 21:55, Nils M Holm wrote:
>
> More recently I have written a FORTH-79 system (with some
> influence by 83 and FIG) that runs on the 8086 under DOS or
> in stand-alone mode. Then I have developed a decompiler,
> meta-compiler, double word package, etc for it. It was a lot
> of fun.

That would be a return to forth after having written M4TH in
the mid 1990's ?

S Jack

unread,
Sep 15, 2021, 10:38:07 AM9/15/21
to
On Wednesday, September 15, 2021 at 2:16:56 AM UTC-5, dxforth wrote:
> On 15/09/2021 16:39, Anton Ertl wrote:
> > dxforth <dxf...@gmail.com> writes:
> >>I vaguely recall something called assembler. What programmers used
> >>before they decided they needed to be coddled.
> >

A Real Forther:
i. doesn't wear pink shirts or funny bow ties
i. uses block files and loves it
i. doesn't use a word processor
A simple line editor is pure luxury.
CAT or COPY usually suffice.
i. doesn't write elegant code
"Looks like crap but meets spec, ship it!"
i. doesn't waste time coming up with cute names
All words have lengths of four or less characters.
Dictionary is lean having been purged of little used
words like the backslash "\".
i. keeps coding when he falls asleep
When he awakes, he blocks it up, names it KOO, and
ships it to his client with double billing for the
added encryption.
i. laughs at those who preach 'The Forth Way'
A sure sign of a clueless wantabe.
i. doesn't need instructions
He sees what's needed and does it. Pays no heed
to whiners. If the lamers need a hug, he sends them
to Elizabeth or the guys in the pink shirts.
i. doesn't argue when his boss instructed to do something
obviously wrong.
He snaps to and says 'aye aye' then proceeds to doing it
the correct way once again saving the moron's butt.
i. avoids Anton at all costs.
patient: "Anton Anton it hurts when I do this."
Anton: "Lay it over here. I'll chop it to bits and it won't
ever bother you again."
patient: "Yipes!!"
Anton: (humming) "If it's evil or the pits, I'll chop it to bits."
--
me

Nils M Holm

unread,
Sep 15, 2021, 12:05:54 PM9/15/21
to
Oh, you remember M4TH? That was a while ago. I have returned
to FORTH over and over again, most recently earlier this year.
This time I decided to write a more standard-compliant system
that can be used to try the examples in Starting FORTH, for
someone who wanted to learn to program.

In case anyone wants to have a look at yet another toy FORTH:
http://t3x.org/t3xforth/index.html

Andy Valencia

unread,
Sep 15, 2021, 12:07:15 PM9/15/21
to
dxforth <dxf...@gmail.com> writes:
> > Assembly language is for wimps. Real men program in machine language.
> Perhaps this deserves a thread of its own - before things once again
> revert to the mean.

To step aside from general pronouncements, I will note that a friend of mine
back in college got interested in the a.out executable format along with
the VAX instruction set. He hand crafted a "Hello, world" which was
vastly smaller than the C one (of course), but several times smaller
than the smallest you could generate using "as" and "ld".

Which, of all the world's problems, solves precisely none of them.
And yet I always found it an interesting result.

Andy Valencia
Home page: https://www.vsta.org/andy/
To contact me: https://www.vsta.org/contact/andy.html

Nils M Holm

unread,
Sep 15, 2021, 12:11:47 PM9/15/21
to
Andy Valencia <van...@vsta.org> wrote:
> To step aside from general pronouncements, I will note that a friend of mine
> back in college got interested in the a.out executable format along with
> the VAX instruction set. He hand crafted a "Hello, world" which was
> vastly smaller than the C one (of course), but several times smaller
> than the smallest you could generate using "as" and "ld".
>
> Which, of all the world's problems, solves precisely none of them.
> And yet I always found it an interesting result.

I used a hand-crafted Hello World ELF file as a starting point for
the ELF backend of one of my compilers, because it avoids all the
bloat.

Not FORTH, but emitting code that emulates a stack-based processor:
http://t3x.org/t3x/index.html#t3x9

Chuck Jackson

unread,
Sep 15, 2021, 5:46:43 PM9/15/21
to
I have ALWAYS looked for a FORTH that I could write all of Brodie with and always run into roadblocks. I'm sure they were ALL surmountable roadblocks, but I will give your FORTH a go and see if I can get through the WHOLE book.

Thanks .

I'm still playing with KLONG.

dxforth

unread,
Sep 15, 2021, 7:54:53 PM9/15/21
to
On 16/09/2021 02:05, Nils M Holm wrote:
> dxforth <dxf...@gmail.com> wrote:
>> On 15/09/2021 21:55, Nils M Holm wrote:
>>> More recently I have written a FORTH-79 system (with some
>>> influence by 83 and FIG) that runs on the 8086 under DOS or
>>> in stand-alone mode. Then I have developed a decompiler,
>>> meta-compiler, double word package, etc for it. It was a lot
>>> of fun.
>>
>> That would be a return to forth after having written M4TH in
>> the mid 1990's ?
>
> Oh, you remember M4TH? That was a while ago. I have returned
> to FORTH over and over again, most recently earlier this year.
> This time I decided to write a more standard-compliant system
> that can be used to try the examples in Starting FORTH, for
> someone who wanted to learn to program.

That explains the interest in Forth-79 - though of course
'Starting Forth' wasn't. Whether SF is 'educational' today is
debatable; it certainly had humour and style.

> In case anyone wants to have a look at yet another toy FORTH:
> http://t3x.org/t3xforth/index.html

BTW there's a discrepancy in the README which claims the use
of Forth-83's representation of True.

dxforth

unread,
Sep 15, 2021, 8:52:25 PM9/15/21
to
On 16/09/2021 02:03, Andy Valencia wrote:
> dxforth <dxf...@gmail.com> writes:
>> > Assembly language is for wimps. Real men program in machine language.
>> Perhaps this deserves a thread of its own - before things once again
>> revert to the mean.
>
> To step aside from general pronouncements, I will note that a friend of mine
> back in college got interested in the a.out executable format along with
> the VAX instruction set. He hand crafted a "Hello, world" which was
> vastly smaller than the C one (of course), but several times smaller
> than the smallest you could generate using "as" and "ld".
>
> Which, of all the world's problems, solves precisely none of them.
> And yet I always found it an interesting result.

The notion of bloat must have preoccupied minds. ISTR Debug and even
Forth used to generate a few bytes of machine code which when saved
constituted a working "Hello, world" executable. In Forth there was
Zimmer's TCOM which did away with the whole compiler/interpreter
baggage - which, if one was to be honest, was rarely needed. SwiftX's
'application stripper' being another example.

dxforth

unread,
Sep 15, 2021, 9:15:14 PM9/15/21
to
On 16/09/2021 00:38, S Jack wrote:
> On Wednesday, September 15, 2021 at 2:16:56 AM UTC-5, dxforth wrote:
>> On 15/09/2021 16:39, Anton Ertl wrote:
>> > dxforth <dxf...@gmail.com> writes:
>> >>I vaguely recall something called assembler. What programmers used
>> >>before they decided they needed to be coddled.
>> >
>
> A Real Forther:
> ...

Now tell us what you _really_ think :)

'Lamers needing a hug' and those who indulge them may seem like a c.l.f.
thing but its history goes back to early days ...

'Forth Dimensions' V1N2 Sep/Aug 1978:

" EDITORIAL

FORTH DIMENSIONS is dedicated to the promotion of
extensible, threaded languages, primarily FORTH. Currently we
are seeing a proliferation of similar languages. We will
review all such implementations, referring to sources and
availability.

Our policy is to use the developing "FORTH 77"
International Standard as our benchmark.

Variant languages, such as STOIC, URTH, and CONVERS, will
be evaluated on their advantages and disadvantages relative to
FORTH. However, in evaluating languages named FORTH, we will
note their accuracy in implementinq all FORTH features. We
expect complete versions named FORTH to contain:

1. indirect threaded code
2. an inner and outer interpreter
3. standard names for the 40 major primitives
4. words such as ;CODE, BLOCK, DOES>, (or ;:), which
allow increased performance.

We hope to enable prospective users/purchasers to
correctly select the version and performance level they wish,
to foster long-range growth in the application of FORTH."

'Forth Dimensions' V1N4:

"Also, have you reviewed Programma International's PET FORTH
yet? They told me that a new version (1.1) would be out in
Nov./Dec., but I'm waiting before buying... would like your
opinions/recoucndations.

Best,
...

Editor --
Programma International's version is not recommended by FIG.
It has a non-standard header (no word length indication) and
is pure machine code. The inner interpreter NEXT is missing
as are the critical definitions ;CODE, <BUILDS, DOES>, and
BLOCK. PROTECT traps execution of compiling words outside of
colon-definitions. FIG now uses ?COMP for this purpose."

Paul Rubin

unread,
Sep 16, 2021, 12:12:11 AM9/16/21
to
an...@mips.complang.tuwien.ac.at (Anton Ertl) writes:
> So I think that Forth's stack-based syntax has (had) a chance,
> especially if it offers an advantage that programmers value. But of
> course infix syntax has a headstart once there is enough memory, so
> one needs an advantage to compensate that.

Lispers didn't feel the need for infix, and some of the most impressive
programs ot the 1980s and earlier were written in Lisp. E. W. Dijkstra
in his 1972 Turing award lecture famously said:

With a few very basic principles at its foundation, it [LISP] has
shown a remarkable stability. Besides that, LISP has been the
carrier for a considerable number of in a sense our most
sophisticated computer applications. LISP has jokingly been
described as “the most intelligent way to misuse a computer”. I
think that description a great compliment because it transmits the
full flavour of liberation: it has assisted a number of our most
gifted fellow humans in thinking previously impossible thoughts.

Interesting things are still being written in Lisp today (I use "Lisp"
broadly, to include dialects like Racket and Clojure). So I think the
lack of infix notation wasn't of such big consequence for Forth.

> The "mastery and understanding" aspect remains as a source of
> popularity, but it's a limited popularity.

It also seems like a valued aspect of Lisp. But Lisp always inspired a
feeling of grandiosity (https://xkcd.com/297/ ), while Forth was and is
more about thriftiness. That might account for some of the difference
in reception.

Anton Ertl

unread,
Sep 16, 2021, 1:52:08 AM9/16/21
to
Andy Valencia <van...@vsta.org> writes:
>To step aside from general pronouncements, I will note that a friend of mine
>back in college got interested in the a.out executable format along with
>the VAX instruction set. He hand crafted a "Hello, world" which was
>vastly smaller than the C one (of course), but several times smaller
>than the smallest you could generate using "as" and "ld".

a.out progressed in several steps along with the development of demand
paging. The original format (IIRC OMAGIC) came before demand paging,
and the loader just read() the file into memory, so there was no
padding to page boundaries. Then there was a format (NMAGIC?) where
text and data were in the same page, and some (ZMAGIC and QMAGIC)
where text and data had separate pages (so text would be read-only and
shared while data would be copy-on-write). I may have the
attributions of the MAGIC names to the features wrong.

My guess is that your collegue produced an OMAGIC file, while as and
ld produced something with padding for page boundaries.

dxforth

unread,
Sep 16, 2021, 1:59:30 AM9/16/21
to
On 15/09/2021 19:11, Anton Ertl wrote:
>
> The "mastery and understanding" aspect remains as a source of
> popularity, but it's a limited popularity. More programmers choose a
> language for a project to be able to program (and maintain) some
> functionality relatively easily than for the feeling of mastery and
> understanding. And these two aspect are at odds with each other, also
> within Forth. A system like Gforth has many features that make it
> convenient for programming, but it is too large and complicated to
> inspire the feeling of mastery and understanding. OTOH, eForth or
> JonesForth give that feeling, but do people write significant
> applications with them? I don't think so.

If Forth be the only place one can be master, all the more reason not
to give it up to another.

Paul Rubin

unread,
Sep 16, 2021, 3:49:20 AM9/16/21
to
dxforth <dxf...@gmail.com> writes:
> If Forth be the only place one can be master, all the more reason not
> to give it up to another.

Lisp is like that too. It just uses a lot more memory than Forth, and
simple implementations are slower.

Nils M Holm

unread,
Sep 16, 2021, 4:43:53 AM9/16/21
to
Chuck Jackson <chuck...@gmail.com> wrote:
> I have ALWAYS looked for a FORTH that I could write all of Brodie
> with and always run into roadblocks. I'm sure they were ALL
> surmountable roadblocks, but I will give your FORTH a go and see
> if I can get through the WHOLE book.

Well, I hope you will not be disappointed! I have not tried all
examples and the whole endeavor got stuck before it was finished.

> Thanks .
>
> I'm still playing with KLONG.

Nils M Holm

unread,
Sep 16, 2021, 4:46:07 AM9/16/21
to
dxforth <dxf...@gmail.com> wrote:
> That explains the interest in Forth-79 - though of course
> 'Starting Forth' wasn't. Whether SF is 'educational' today is
> debatable; it certainly had humour and style.

For someone who wants to learn about basic concepts like bits
and bytes, memory, stacks, loops, and branches, it is still
unmatched IMO, especially because of the humor.

> BTW there's a discrepancy in the README which claims the use
> of Forth-83's representation of True.

You mean "all bits set" versus "minus one"?

dxforth

unread,
Sep 16, 2021, 5:08:28 AM9/16/21
to
On 16/09/2021 18:46, Nils M Holm wrote:
> dxforth <dxf...@gmail.com> wrote:
>
>> BTW there's a discrepancy in the README which claims the use
>> of Forth-83's representation of True.
>
> You mean "all bits set" versus "minus one"?

from README:

"Like FORTH-83, T3XFORTH uses -1 as its canonical truth value."

from GLOSSARY:

= ( w1 w2 -- f ) F-79
"equals"
Return truth, if W1 equals W2.
Example: 5 5 = \ gives 1

NN

unread,
Sep 16, 2021, 5:42:29 AM9/16/21
to

.... write real programs that work, instead of endlessly arguing about the merits of programs never written.

Nils M Holm

unread,
Sep 16, 2021, 5:54:21 AM9/16/21
to
dxforth <dxf...@gmail.com> wrote:
> from README:
>
> "Like FORTH-83, T3XFORTH uses -1 as its canonical truth value."
>
> from GLOSSARY:
>
> = ( w1 w2 -- f ) F-79
> "equals"
> Return truth, if W1 equals W2.
> Example: 5 5 = \ gives 1

Oh, I see! At some point I switched "true" from 1 to -1 and seem
to have missed this in the documentation. Thank you!

dxforth

unread,
Sep 16, 2021, 7:38:31 AM9/16/21
to
On 16/09/2021 19:54, Nils M Holm wrote:
> dxforth <dxf...@gmail.com> wrote:
>> from README:
>>
>> "Like FORTH-83, T3XFORTH uses -1 as its canonical truth value."
>>
>> from GLOSSARY:
>>
>> = ( w1 w2 -- f ) F-79
>> "equals"
>> Return truth, if W1 equals W2.
>> Example: 5 5 = \ gives 1
>
> Oh, I see! At some point I switched "true" from 1 to -1 and seem
> to have missed this in the documentation. Thank you!

Also:

M/MOD is signed but tagged FIG (FIG's was unsigned)

/MOD / MOD */MOD */ are floored but tagged F-79 (79=symmetric, 83=floored)

In the sources EXTEND ( n -- n ) should be ( n -- d )

Anton Ertl

unread,
Sep 16, 2021, 8:06:42 AM9/16/21
to
Paul Rubin <no.e...@nospam.invalid> writes:
>an...@mips.complang.tuwien.ac.at (Anton Ertl) writes:
>> So I think that Forth's stack-based syntax has (had) a chance,
>> especially if it offers an advantage that programmers value. But of
>> course infix syntax has a headstart once there is enough memory, so
>> one needs an advantage to compensate that.
>
>Lispers didn't feel the need for infix

That's not entirely true. Actually S-Expressions were only an
intermediate step in Lisp, and the plan was to have M-expressions
(infix among other things) later. Later on there have also been
attempts at an infix syntax (most notably Dylan), as discussed in the
HOPL-II paper on Lisp. Likewise, there has been at least one
Forth-derived infix language (IIRC, Magic/L).

Neither for Lisp nor for Forth the infix variants were as successful
as the languages they are based on. The reason is that Lispers and
Forthers already know how to deal with the syntax of their language,
so the infix syntax is not a benefit for them, and typically has some
disadvantages compared to the base syntax (especially for
metaprogramming). This demonstrates my point that Forth's stack-based
syntax (and Lisp's S-expression syntax) has a chance against infix
competition.

At the same time the infix variants failed to attract sufficient
numbers of users from the wider programming populace (or from
beginners), so they did not eclipse their non-infix parents.

>> The "mastery and understanding" aspect remains as a source of
>> popularity, but it's a limited popularity.
>
>It also seems like a valued aspect of Lisp.

I don't know the Lisp community that much, but my impression is that
while writing your own REPL is a standard exercise in Lisp, writing a
Lisp implementation from scratch is not as common as writing a Forth
implementation from scratch.

>But Lisp always inspired a
>feeling of grandiosity (https://xkcd.com/297/ ), while Forth was and is
>more about thriftiness.

I have the same impression.

Nils M Holm

unread,
Sep 16, 2021, 11:29:02 AM9/16/21
to
dxforth <dxf...@gmail.com> wrote:
> Also:
>
> M/MOD is signed but tagged FIG (FIG's was unsigned)
>
> /MOD / MOD */MOD */ are floored but tagged F-79 (79=symmetric, 83=floored)
>
> In the sources EXTEND ( n -- n ) should be ( n -- d )

Thanks! Glad you have a closer look at this! I will keep
collecting input and do a new release at some point.

none albert

unread,
Sep 16, 2021, 4:22:03 PM9/16/21
to
In article <iqh65s...@mid.individual.net>,
Nils M Holm <n...@ananda.local> wrote:
>dxforth <dxf...@gmail.com> wrote:
>> Also:
>>
>> M/MOD is signed but tagged FIG (FIG's was unsigned)
>>
>> /MOD / MOD */MOD */ are floored but tagged F-79 (79=symmetric, 83=floored)
>>
>> In the sources EXTEND ( n -- n ) should be ( n -- d )
>
>Thanks! Glad you have a closer look at this! I will keep
>collecting input and do a new release at some point.

I struggled with this too.

From the ciforth documentation:

The original 16 bits Forth's have problems with overflow (*note
OPERATOR::). Operators with intermediate results of double precision,
mostly scaling operators, solve this and are present in the *Note
MULTIPLYING::, wordset. In this 64 bit Forth you will have less need.
When you divide a 2.n digit number by an n digit number you get an
n-digit quotient and an n-digit remainder. So naturally many operators
in this set have a mix of double and single numbers in their stack
diagram: they are "mixed magnitude" . All those have 'M' in the name.
Furthermore all operations are signed, with the exception of the ones
starting with 'U' . Those have unsigned operands exclusively. The
irregularly named word "M/MOD" is a relic from the fig-forth era;
preferably its alias "UDM/MOD" is to be used. Output formatting is done
with "double" 's exclusively, and relies on this wordset and the
'DOUBLE' wordset. Operators with mixed magnitude and unsigned operators
allow to build arbitrary precision operators from them in "high level"
code.
~


9.19.9 UM/MOD
-------------

Name: 'UM/MOD'

Stackeffect: ud u1 -- u2 u3

Attributes: ISO

Description: Leave the unsigned remainder 'u2' and unsigned quotient
'u3' from the unsigned double dividend 'ud' and unsigned divisor 'u1' .

See also: 'UM*' 'SM/REM' '/'


9.19.7 UDM/MOD
--------------

Name: 'UDM/MOD'

Stackeffect: ud1 u2 -- u3 ud4

Attributes: CIF,FIG

Description: An unsigned mixed magnitude math operation which leaves a
double quotient 'ud4' and remainder 'u3' , from a double dividend 'ud1'
and single divisor 'u2'. Unlike with "UM/MOD" the quotient can not
overflow. The traditional alias forthcdefi(M/MOD) dates from the
fig-forth era.

See also: 'UM/MOD' 'SM/REM' 'M*'

~
>--
>Nils M Holm < n m h @ t 3 x . o r g > www.t3x.org

Groetjes Albert
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

none albert

unread,
Sep 16, 2021, 4:30:04 PM9/16/21
to
In article <2021Sep1...@mips.complang.tuwien.ac.at>,
Anton Ertl <an...@mips.complang.tuwien.ac.at> wrote:
>The "mastery and understanding" aspect remains as a source of
>popularity, but it's a limited popularity. More programmers choose a
>language for a project to be able to program (and maintain) some
>functionality relatively easily than for the feeling of mastery and
>understanding. And these two aspect are at odds with each other, also
>within Forth. A system like Gforth has many features that make it
>convenient for programming, but it is too large and complicated to
>inspire the feeling of mastery and understanding. OTOH, eForth or
>JonesForth give that feeling, but do people write significant
>applications with them? I don't think so.

Jonesforth is basically ciforth minus the libraries. The feeling
is not much different.

ciasdis is written in ciforth. It was used to analyse colorforth.
It can disassemble and reassemble colorforth, weird character coding,
character sets, blocks, boot code and all.
I maintain that ciasdis count as a "significant application".
It required actual mastery and understanding, not just the feeling.

>
>- anton

Ron AARON

unread,
Sep 17, 2021, 12:18:42 AM9/17/21
to


On 15/09/2021 12:11, Anton Ertl wrote:

> unclear if we would not have lost these programmers anyway. Other
> efforts in that direction, but much later (mostly after many had been
> lost), are Factor, Oforth and Eighth.

Not to be 'that guy', but it's "8th", not 'Eighth'... though perhaps it
would have been a better name choice.

Anton Ertl

unread,
Sep 17, 2021, 1:41:34 AM9/17/21
to
Ron AARON <c...@8th-dev.com> writes:
>
>
>On 15/09/2021 12:11, Anton Ertl wrote:
>
>> unclear if we would not have lost these programmers anyway. Other
>> efforts in that direction, but much later (mostly after many had been
>> lost), are Factor, Oforth and Eighth.
>
>Not to be 'that guy', but it's "8th", not 'Eighth'...

I apologize.

>though perhaps it
>would have been a better name choice.

Both google and duckduckgo don't deliver your language on the first
page to me when searching for 8th (but "8th programming" works), so a
less frequently used name could have been beneficial; I don't think
that "Eighth" would have been better in that respect.

dxforth

unread,
Sep 17, 2021, 1:57:51 AM9/17/21
to
So it's not just Biden who can't remember an insignificant name :)

Ron AARON

unread,
Sep 17, 2021, 5:00:21 AM9/17/21
to


On 17/09/2021 8:24, Anton Ertl wrote:
> Ron AARON <c...@8th-dev.com> writes:
>>
>>
>> On 15/09/2021 12:11, Anton Ertl wrote:
>>
>>> unclear if we would not have lost these programmers anyway. Other
>>> efforts in that direction, but much later (mostly after many had been
>>> lost), are Factor, Oforth and Eighth.
>>
>> Not to be 'that guy', but it's "8th", not 'Eighth'...
>
> I apologize.

No need, indeed.

>
>> though perhaps it
>> would have been a better name choice.
>
> Both google and duckduckgo don't deliver your language on the first
> page to me when searching for 8th (but "8th programming" works), so a
> less frequently used name could have been beneficial; I don't think
> that "Eighth" would have been better in that respect.

I know; I had thought it a clever name, before I realized the Google-foo
was very weak.

So it goes...

dxforth

unread,
Sep 17, 2021, 5:29:43 AM9/17/21
to
Serious research requires leg-work:

https://www.retrotechnology.com/memship/8th.html

Ron AARON

unread,
Sep 17, 2021, 7:03:57 AM9/17/21
to
Huh. After what, almost seven years? of my 8th, this is the first I've
heard of this other 8th...

Doug Hoffman

unread,
Sep 17, 2021, 7:47:59 AM9/17/21
to
On 9/17/21 5:00 AM, Ron AARON wrote:
> On 17/09/2021 8:24, Anton Ertl wrote:

>> Both google and duckduckgo don't deliver your language on the first
>> page to me when searching for 8th (but "8th programming" works),
...

> I know; I had thought it a clever name, before I realized the Google-foo
> was very weak.

Ron, Maybe somewhere you displayed a lack of sufficient "woke-ness".
That will get you kicked out or at least moved off the first page of big
tech search engine algorithm results. ;-)

-Doug

Ron AARON

unread,
Sep 17, 2021, 9:02:48 AM9/17/21
to
Oh, now, that's certainly a possibility :)

Anton Ertl

unread,
Sep 17, 2021, 12:17:25 PM9/17/21
to
In spring I started a project called fforth (the idea is that is is
between eforth and gforth; more modern than eforth, simpler than
gforth). The present thread inspired me to do a web search for
fforth, and it's indeed a good name, because I found a Forth system
called fforth right away: the first hit on duckduckgo and my first
english-language hit on google is <http://cowlark.com/fforth/>.
Unfortunately, it's not my project:-). Now what?

Heinrich Hohl

unread,
Sep 17, 2021, 1:29:56 PM9/17/21
to
On Friday, September 17, 2021 at 6:17:25 PM UTC+2, Anton Ertl wrote:
> In spring I started a project called fforth (the idea is that is is
> between eforth and gforth; more modern than eforth, simpler than
> gforth). The present thread inspired me to do a web search for
> fforth, and it's indeed a good name, because I found a Forth system
> called fforth right away: the first hit on duckduckgo and my first
> english-language hit on google is <http://cowlark.com/fforth/>.
> Unfortunately, it's not my project:-). Now what?
> - 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 2021: https://euro.theforth.net/2021

Call it aeForth (advanced eforth). Also refers to your initials.

Jurgen Pitaske

unread,
Sep 17, 2021, 1:48:25 PM9/17/21
to
what a brilliant idea
- this would as well give Ting more credit for all of the work he has done.
Software and Forth chips.

For me he did the two extremes:
eForth as Arduino Sketch - for the maker community,
download and load the sketch into your UNO or nano and start programming Forth programs
https://wiki.forth-ev.de/doku.php/projects:430eforth:start
The other extreme is eForth in Javascript and Java recently

Gerry Jackson

unread,
Sep 17, 2021, 2:42:40 PM9/17/21
to
On 17/09/2021 17:10, Anton Ertl wrote:
> Ron AARON <c...@8th-dev.com> writes:
>>
>>
>> On 2021-09-17 12:29, dxforth wrote:
>>> https://www.retrotechnology.com/memship/8th.html
>>
>> Huh. After what, almost seven years? of my 8th, this is the first I've
>> heard of this other 8th...
>
> In spring I started a project called fforth (the idea is that is is
> between eforth and gforth; more modern than eforth, simpler than
> gforth). The present thread inspired me to do a web search for
> fforth, and it's indeed a good name, because I found a Forth system
> called fforth right away: the first hit on duckduckgo and my first
> english-language hit on google is <http://cowlark.com/fforth/>.
> Unfortunately, it's not my project:-). Now what?
>

fforth with the double f looks like a Welsh word and there is a Welsh
word spelled ffordd, where the dd is pronounced with a th sound, that
means 'way' or 'road' (whether to enlightenment or perdition - take your
pick - perhaps the latter is reserved for those who use PICK).
Coincidentally there's a village in Wales called Minffordd.

--
Gerry

Marcel Hendrix

unread,
Sep 17, 2021, 4:02:21 PM9/17/21
to
On Friday, September 17, 2021 at 6:17:25 PM UTC+2, Anton Ertl wrote:
[..]
> In spring I started a project called fforth (the idea is that is is
> between eforth and gforth; more modern than eforth, simpler than
> gforth). The present thread inspired me to do a web search for
> fforth, and it's indeed a good name, because I found a Forth system
> called fforth right away: the first hit on duckduckgo and my first
> english-language hit on google is <http://cowlark.com/fforth/>.
> Unfortunately, it's not my project:-). Now what?

I called my first Forth FForth (fast Forth, the obsession started early).
It is mentioned in the Dutch Vijgeblad somewhere, but Google can't
find it and it therefore didn't exist.

-marcel

minf...@arcor.de

unread,
Sep 17, 2021, 4:17:31 PM9/17/21
to
Anton Ertl schrieb am Freitag, 17. September 2021 um 18:17:25 UTC+2:
> Ron AARON <c...@8th-dev.com> writes:
> >
> >
> >On 2021-09-17 12:29, dxforth wrote:
> >> https://www.retrotechnology.com/memship/8th.html
> >
> >Huh. After what, almost seven years? of my 8th, this is the first I've
> >heard of this other 8th...
> In spring I started a project called fforth (the idea is that is is
> between eforth and gforth; more modern than eforth, simpler than
> gforth). The present thread inspired me to do a web search for
> fforth, and it's indeed a good name, because I found a Forth system
> called fforth right away: the first hit on duckduckgo and my first
> english-language hit on google is <http://cowlark.com/fforth/>.
> Unfortunately, it's not my project:-). Now what?

Similar intentions - i.e. a modernized eforth - went with hforth
https://www.taygeta.com/hforth.html

dxforth

unread,
Sep 17, 2021, 10:08:54 PM9/17/21
to
Google isn't the Akashic Records - as much as everyone would like to
treat it as one :)

Anton Ertl

unread,
Sep 18, 2021, 5:00:38 AM9/18/21
to
Marcel Hendrix <m...@iae.nl> writes:
>I called my first Forth FForth (fast Forth, the obsession started early).
>It is mentioned in the Dutch Vijgeblad somewhere, but Google can't
>find it and it therefore didn't exist.

Thanks all for the input. I have decided that for now I will call my
system Fforth, which is not quite the same name as Marcel Hendrix'
FForth and David Given's fforth.

Anton Ertl

unread,
Sep 18, 2021, 6:06:56 AM9/18/21
to
"minf...@arcor.de" <minf...@arcor.de> writes:
>Similar intentions - i.e. a modernized eforth - went with hforth
>https://www.taygeta.com/hforth.html

Reading this article with a quarter-century of hindsight is
interesting. hforth attacks the ROMmability problem and
multi-tasking, both of which I do not plan to address myself in Fforth
(but the idea is that anyone can pick it up and modify it as desired).

The more interesting aspects of the article for me are the Section
"Jump Table Interpreter" which discusses the text interpreter design
and optiCOMPILE,; and the Section "Special compilation action for
default compilation semantics", which discusses something similar to
SET-OPTIMIZER.

The text interpreter is implemented through a table of xts (indexed
with STATE and the FIND result) rather than hard-coded. This table
allows modifying/extending the text interpreter by putting in
different xts, and the article talks about that. It's pretty far from
current recognizer proposals, but pointing into that direction.

optiCOMPILE, is semantically equivalent to COMPILE, but implements
optimizations, in particular inlining (the paper also mentions
eliminating CHARS, but inlining should cover that, too).

The "Special compilation action for default compilation semantics"
gives the example:

:NONAME EXECUTE POSTPONE 2LITERAL ;
: 2CONSTANT
CREATE SWAP , , compiles> DOES> DUP @ SWAP CELL+ @ ;

where "compiles>" takes the xt of the :NONAME definition and uses
somehow for performing the compilation semantics. Apparently the
affected words (e.g., those defined with 2CONSTANT) have a flag set,
and when the compilation semantics is performed on such a word, the xt
passed to "compiles>" is called, with the xt of the compiled word on
the stack. Given the description of the text interpreter,
"optiCOMPILE," has to do this check and call the xt; the article also
mentions POSTPONE, so maybe POSTPONE does not achieve this through
"optiCOMPILE,", or maybe the mention just means that POSTPONE calls
"optiCOMPILE,", not COMPILE,.

In more recent concepts (I'll use Gforth as an example here, but
several other systems have similar concepts), there is not difference
between COMPILE, and "optiCOMPILE,". The code in the :NONAME can be
used to compile a 2constant, and is therefore a proper implementation
of COMPILE, for words defined by 2CONSTANT. The Gforth equivalent of
"compiles>" is called SET-OPTIMIZER, in VFX it is called SET-COMPILER.

One observation is still true:

|It is the user's responsibility to match special compilation action
|with the default compilation semantics.

This means that you must not try to use SET-OPTIMIZER to define
non-default compilation semantics. Those who have tried have found
that while it works as intended in many cases, it does the wrong thing
in other cases, and trying to work around that leads to additional
complications.

Ron AARON

unread,
Sep 18, 2021, 1:25:08 PM9/18/21
to


On 2021-09-17 19:10, Anton Ertl wrote:
> Ron AARON <c...@8th-dev.com> writes:
>>
>>
>> On 2021-09-17 12:29, dxforth wrote:
>>> https://www.retrotechnology.com/memship/8th.html
>>
>> Huh. After what, almost seven years? of my 8th, this is the first I've
>> heard of this other 8th...
>
> In spring I started a project called fforth (the idea is that is is
> between eforth and gforth; more modern than eforth, simpler than
> gforth). The present thread inspired me to do a web search for
> fforth, and it's indeed a good name, because I found a Forth system
> called fforth right away: the first hit on duckduckgo and my first
> english-language hit on google is <http://cowlark.com/fforth/>.
> Unfortunately, it's not my project:-). Now what?

Heh. Well, I'm clearly not the best person to ask about coming up with
good names...

Hans Bezemer

unread,
Sep 22, 2021, 12:25:43 PM9/22/21
to
Well, "a compiler 8th my homework" sounds kind of cool ;-)

Hans Bezemer

Ron AARON

unread,
Sep 23, 2021, 12:33:18 AM9/23/21
to
<groan....>

Brad Eckert

unread,
Oct 1, 2021, 7:02:13 PM10/1/21
to
Let's hope Google doesn't figure out how to read the Akashic Records.

I think Forth was always doomed because it can't be used at the enterprise level.
You would inevitably assign maintenance work to someone who hates Forth or shouldn't be laying their hands on Forth.
Forth is good for small groups of smart programmers. How many of those are there?

dxforth

unread,
Oct 1, 2021, 10:00:34 PM10/1/21
to
Perhaps not even that. How many gurus do you see working together?
A master/slave relationship would soon develop leading to suppression
of individuality. Chuck had to leave Forth Inc. just as The Beatles
had to split up. It had become stifling.
0 new messages