Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #41404 > unrolled thread

machineforth != forth?

Started byMux <Yvo.Zoer@gmail.com>
First post2015-08-19 13:28 -0700
Last post2015-08-20 14:11 +0200
Articles 16 — 11 participants

Back to article view | Back to comp.lang.forth


Contents

  machineforth != forth? Mux <Yvo.Zoer@gmail.com> - 2015-08-19 13:28 -0700
    Re: machineforth != forth? Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-19 22:49 +0200
      Re: machineforth != forth? m.a.m.hendrix@tue.nl - 2015-08-20 00:13 -0700
        Re: machineforth != forth? Roelf Toxopeus <rt4all@notthis.hetnet.nl> - 2015-08-20 13:05 +0200
        Re: machineforth != forth? Mux <Yvo.Zoer@gmail.com> - 2015-08-20 20:29 -0700
          Re: machineforth != forth? hughaguilar96@gmail.com - 2015-08-20 21:28 -0700
            Re: machineforth != forth? "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-08-21 07:11 -0400
              Re: machineforth != forth? Jan Coombs <Jan-54 <jenfhaomndgfwutc@murmic.plus.com>> - 2015-08-21 23:23 +0100
                Re: machineforth != forth? hughaguilar96@gmail.com - 2015-08-21 21:06 -0700
                  Re: machineforth != forth? Raimond Dragomir <raimond.dragomir@gmail.com> - 2015-08-21 21:41 -0700
                    Re: machineforth != forth? Matthias Trute <matthias.trute@gmail.com> - 2015-08-22 01:29 -0700
          Re: machineforth != forth? m.a.m.hendrix@tue.nl - 2015-08-21 01:46 -0700
            Re: machineforth != forth? "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-08-21 07:19 -0400
              Re: machineforth != forth? dunno <dunno@dunno.dunno> - 2015-08-27 21:42 +0000
    Re: machineforth != forth? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-08-20 08:10 +0000
      Re: machineforth != forth? Roelf Toxopeus <rt4all@notthis.hetnet.nl> - 2015-08-20 14:11 +0200

#41404 — machineforth != forth?

FromMux <Yvo.Zoer@gmail.com>
Date2015-08-19 13:28 -0700
Subjectmachineforth != forth?
Message-ID<5cf160f0-e431-4309-b45a-70db3e6c9d79@googlegroups.com>
Philosophical question...

Where do you draw the line as to what's considered a forth implementation? I've got a minimal forth that's much closer to machine forth and (therefore) doesn't conform to any of the ANS-forth standards. Is that still considered forth?

Thoughts?

-Y

[toc] | [next] | [standalone]


#41405

FromBernd Paysan <bernd.paysan@gmx.de>
Date2015-08-19 22:49 +0200
Message-ID<mr2q24$rce$2@dont-email.me>
In reply to#41404
Mux wrote:

> Philosophical question...
> 
> Where do you draw the line as to what's considered a forth implementation?
> I've got a minimal forth that's much closer to machine forth and
> (therefore) doesn't conform to any of the ANS-forth standards. Is that
> still considered forth?

Machine Forth is probably 3/4th of a Forth:

- Has words (blank separated symbols and numbers)? yes
- Has stacks? yes
- Has definitions? yes
- Is interactive? no

ANS Forth or Forth 2012 don't mandate that you include everything into the 
system, it only requires that you can load it as source, which means that 
even very minimal systems can potentially comply - by loading the source.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ*
http://bernd-paysan.de/

[toc] | [prev] | [next] | [standalone]


#41409

Fromm.a.m.hendrix@tue.nl
Date2015-08-20 00:13 -0700
Message-ID<1fffb5d0-9a3f-4de4-81d9-0dbf73b4df55@googlegroups.com>
In reply to#41405
On Wednesday, August 19, 2015 at 10:49:49 PM UTC+2, Bernd Paysan wrote:
> Mux wrote:
> 
> > Philosophical question...
> > 
> > Where do you draw the line as to what's considered a forth implementation?
> > I've got a minimal forth that's much closer to machine forth and
> > (therefore) doesn't conform to any of the ANS-forth standards. Is that
> > still considered forth?
> 
> Machine Forth is probably 3/4th of a Forth:
> 
> - Has words (blank separated symbols and numbers)? yes
> - Has stacks? yes
> - Has definitions? yes

Ok.

> - Is interactive? no

Then it isn't Forth, in my book.

[..]

-marcel

[toc] | [prev] | [next] | [standalone]


#41414

FromRoelf Toxopeus <rt4all@notthis.hetnet.nl>
Date2015-08-20 13:05 +0200
Message-ID<55d5b4a5$0$24166$e4fe514c@textnews.kpn.nl>
In reply to#41409
On 20/08/15 09:13, m.a.m.hendrix@tue.nl wrote:
> On Wednesday, August 19, 2015 at 10:49:49 PM UTC+2, Bernd Paysan wrote:
>> Mux wrote:
>>
>>> Philosophical question...
>>>
>>> Where do you draw the line as to what's considered a forth implementation?
>>> I've got a minimal forth that's much closer to machine forth and
>>> (therefore) doesn't conform to any of the ANS-forth standards. Is that
>>> still considered forth?
>>
>> Machine Forth is probably 3/4th of a Forth:
>>
>> - Has words (blank separated symbols and numbers)? yes
>> - Has stacks? yes
>> - Has definitions? yes
>
> Ok.
>
>> - Is interactive? no
>
> Then it isn't Forth, in my book.

Like any underlying virtual machine or CPU instruction set.

So a Forth (all 4 ticks) based upon MachineForth is Forth! Like 
ColorForth. Perhaps the OT's Forth is likewise. I recall an interactive 
MachineForth for ARM around 1999.

At iTV, weren't they using (Machine)Forth harware upon which they 
implemented an ANS Forth as well as a non-ANS Forth called MachineForth?

The name MachineForth is used for at least 3 things:
-hardware and thus the assembler for ...
-virtual machine (upon whatever CPU) for a Forth implementation
-the name for some of those realized implementations

As a reminder:
http://www.ultratechnology.com/forth0.htm#mf

[toc] | [prev] | [next] | [standalone]


#41425

FromMux <Yvo.Zoer@gmail.com>
Date2015-08-20 20:29 -0700
Message-ID<b55943bb-f202-44f0-9f5e-6c8c43397974@googlegroups.com>
In reply to#41409
> > - Is interactive? no
> 
> Then it isn't Forth, in my book.
> 
> [..]
> 
> -marcel

By that definition, any interpreted language can be considered forth, no? For me, forth embodies more than ticking a number of boxes. The hardware architecture itself, a way of thinking and applying the KISS approach. Interactivity can be part of it but that's in now way implied. Like I said, by that token writing a script in php falls into that category.

-Y

P.S. Just stating my opinion :-) Thanks for sharing yours!

[toc] | [prev] | [next] | [standalone]


#41426

Fromhughaguilar96@gmail.com
Date2015-08-20 21:28 -0700
Message-ID<4ace3c81-e69b-44d4-bd1a-bd5ffd238e36@googlegroups.com>
In reply to#41425
On Thursday, August 20, 2015 at 8:29:21 PM UTC-7, Mux wrote:
> > > - Is interactive? no
> > 
> > Then it isn't Forth, in my book.
> > 
> > [..]
> > 
> > -marcel
> 
> By that definition, any interpreted language can be considered forth, no? For me, forth embodies more than ticking a number of boxes. The hardware architecture itself, a way of thinking and applying the KISS approach. Interactivity can be part of it but that's in now way implied. Like I said, by that token writing a script in php falls into that category.
> 
> -Y
> 
> P.S. Just stating my opinion :-) Thanks for sharing yours!

He isn't saying that every interactive language is Forth, just that Forth has to be interactive to be Forth.

My MFX wasn't interactive --- I just cross-compiled into a memory image and then uploaded that to the board, similar to a C cross-compiler --- Testra has since written a traditional interactive on-board Forth system in MFX, although it doesn't support assembly-language so MFX is still required for ye olde Pareto Analysis upgrades.

An on-board Forth system can't generate machine-code because it can't write into program memory --- this is a common limitation in Harvard Architecture systems --- it is unlikely that Marcel Hendrix knows what Harvard Architecture is, or he wouldn't have stated that Forth has to be interactive.

[toc] | [prev] | [next] | [standalone]


#41435

From"Rod Pemberton" <boo@fasdfrewar.cdm>
Date2015-08-21 07:11 -0400
Message-ID<op.x3ptddwyyfako5@localhost>
In reply to#41426
On Fri, 21 Aug 2015 00:28:19 -0400, <hughaguilar96@gmail.com> wrote:

> An on-board Forth system can't generate machine-code because
> it can't write into program memory --- this is a common limitation
> in Harvard Architecture systems ---

True.

> it is unlikely that Marcel Hendrix knows what Harvard Architecture
> is, or he wouldn't have stated that Forth has to be interactive.

False.

There is no correlation between an "on-board Forth system" with
a "Harvard Architecture" and Forth being interactive.  Even in
an embedded system, of Harvard or von Neumann design, with no
writable memory, Forth can still be interactive.   For an interpreted
Forth, you can enter Forth words with "interpretation semantics" and
they will (or should) execute.  They were already compiled and stored
in non-writable memory.  You just can't add any new definitions to a
dictionary or use PAD, etc, without writable memory.  The two stacks
are obviously being excluded as being writable memory here, even though
they usually are.


Rod Pemberton

-- 
Scientists now say we'll experience a mini-ice in 2030.
So, I guess we need more global warming today ...

[toc] | [prev] | [next] | [standalone]


#41449

FromJan Coombs <Jan-54 <jenfhaomndgfwutc@murmic.plus.com>>
Date2015-08-21 23:23 +0100
Message-ID<20150821232333.4cb0318a@HP-6550b>
In reply to#41435
On Fri, 21 Aug 2015 07:11:27 -0400
"Rod Pemberton" <boo@fasdfrewar.cdm> wrote:

> On Fri, 21 Aug 2015 00:28:19 -0400, <hughaguilar96@gmail.com>
> wrote:
> 
> > An on-board Forth system can't generate machine-code because
> > it can't write into program memory --- this is a common
> > limitation in Harvard Architecture systems ---
> 
> True.

Hate to haggle, but...

I have CamelForth for test purposes on Harvard Architecture
systems. (flash 8051 boards [1]). The compiler works, and I have
no reason to think that an assembler would not. 

Jan Coombs
-- 
[1] https://en.wikipedia.org/wiki/Intel_MCS-51
email valid, else fix dots and hyphen
jan4clf2014@murrayhyphenmicroftdotcodotuk

[toc] | [prev] | [next] | [standalone]


#41451

Fromhughaguilar96@gmail.com
Date2015-08-21 21:06 -0700
Message-ID<8125302b-70f0-40e2-8a05-94129b8ef375@googlegroups.com>
In reply to#41449
On Friday, August 21, 2015 at 3:23:35 PM UTC-7, Jan Coombs <Jan-54 > wrote:
> On Fri, 21 Aug 2015 07:11:27 -0400
> "Rod Pemberton" <boo@fasdfrewar.cdm> wrote:
> 
> > On Fri, 21 Aug 2015 00:28:19 -0400, <hughaguilar96@gmail.com>
> > wrote:
> > 
> > > An on-board Forth system can't generate machine-code because
> > > it can't write into program memory --- this is a common
> > > limitation in Harvard Architecture systems ---
> > 
> > True.
> 
> Hate to haggle, but...
> 
> I have CamelForth for test purposes on Harvard Architecture
> systems. (flash 8051 boards [1]). The compiler works, and I have
> no reason to think that an assembler would not. 
> 
> Jan Coombs
> -- 
> [1] https://en.wikipedia.org/wiki/Intel_MCS-51
> email valid, else fix dots and hyphen
> jan4clf2014@murrayhyphenmicroftdotcodotuk

The 8051 is not Harvard Architecture.

[toc] | [prev] | [next] | [standalone]


#41452

FromRaimond Dragomir <raimond.dragomir@gmail.com>
Date2015-08-21 21:41 -0700
Message-ID<1872ee4d-bcaf-48c1-9669-659214b773c9@googlegroups.com>
In reply to#41451
sâmbătă, 22 august 2015, 07:06:19 UTC+3, hughag...@gmail.com a scris:
> On Friday, August 21, 2015 at 3:23:35 PM UTC-7, Jan Coombs <Jan-54 > wrote:
> > On Fri, 21 Aug 2015 07:11:27 -0400
> > "Rod Pemberton" <boo@fasdfrewar.cdm> wrote:
> > 
> > > On Fri, 21 Aug 2015 00:28:19 -0400, <hughaguilar96@gmail.com>
> > > wrote:
> > > 
> > > > An on-board Forth system can't generate machine-code because
> > > > it can't write into program memory --- this is a common
> > > > limitation in Harvard Architecture systems ---
> > > 
> > > True.
> > 
> > Hate to haggle, but...
> > 
> > I have CamelForth for test purposes on Harvard Architecture
> > systems. (flash 8051 boards [1]). The compiler works, and I have
> > no reason to think that an assembler would not. 
> > 
> > Jan Coombs
> > -- 
> > [1] https://en.wikipedia.org/wiki/Intel_MCS-51
> > email valid, else fix dots and hyphen
> > jan4clf2014@murrayhyphenmicroftdotcodotuk
> 
> The 8051 is not Harvard Architecture.

A strict Harvard machine cannot read program memory as constant data. All data in program memory must be literals. Any other data (constant or not) should be on a separate bus. The program and data buses are hardware distinct.
I don't know even one modern cpu (since 1990) that has this architecture. All modern Hardward machines are either "modified" or "relaxed". There are cases with separate program and data spaces on the same physical bus (or not) (program space read-only - but readable) or cases with (internal) separate buses for instruction and data but acting in an unified address space (cortex-m3/m4) backed with complex switched matrix buses.

8051 is a relaxed Hardward because it has readable program memory as data, separated from the data memories. It doesn't have however separate buses for program and data.

[toc] | [prev] | [next] | [standalone]


#41454

FromMatthias Trute <matthias.trute@gmail.com>
Date2015-08-22 01:29 -0700
Message-ID<393d57e3-ed34-49a3-b936-7ae3cca699b9@googlegroups.com>
In reply to#41452
> I don't know even one modern cpu (since 1990) that has this architecture. All > modern Hardward machines are either "modified" or "relaxed". There are cases > with separate program and data spaces on the same physical bus (or not) 
> (program space read-only - but readable) or cases with (internal) separate 
> buses for instruction and data but acting in an unified address space (cortex-
> m3/m4) backed with complex switched matrix buses.

The Atmel AVR8 Atmegas have three distinct address spaces: RAM, Flash and 
EEPROM. Only RAM is directly accessible via load/store operations, the other 
memories need special actions, for flash even a special instruction (LPM/SPM). 
That comes pretty close to a pure Harvard. They were designed in the 90ties and
are still in use.

Matthias

[toc] | [prev] | [next] | [standalone]


#41433

Fromm.a.m.hendrix@tue.nl
Date2015-08-21 01:46 -0700
Message-ID<e475f16b-4d1b-43ad-899c-66e4f94cd970@googlegroups.com>
In reply to#41425
On Friday, August 21, 2015 at 5:29:21 AM UTC+2, Mux wrote:
> > > - Is interactive? no
> > 
> > Then it isn't Forth, in my book.
> > 
> > [..]
> > 
> > -marcel
> 
> By that definition, any interpreted language can be considered forth, no? 

No, of course not, that is a logically unsound / wrong statement.
Apples have cores, but having a core doesn't make my computer 
a Granny Smith.

> For me, forth embodies more than ticking a number of boxes. 
> The hardware architecture itself, a way of thinking and applying 
> the KISS approach. Interactivity can be part of it but that's in 
> now way implied. Like I said, by that token writing a script in 
> php falls into that category.

False reasoning. I said that it had to have an interpreter to be 
Forth, not that that was the only thing it has to have. PHP does
not qualify.

> The hardware architecture itself, a way of thinking and applying 
> the KISS approach.

If I must be more specific: I am sure the hardware has nothing
to do with being Forth -- Forth can be implemented on anything 
(One can imagine crappy hardware architectures or incompetent
programmers that make the interpreter very inefficient). 

'A way of thinking' is obviously true but says nothing.

I am not a big KISS proponent, but lately it has become clear to
me that any program / programming system will develop into a 
monster of complexity over its lifetime (look at SPICE or Matlab,
or gcc, or Linux ...). One should fight that, but not every battle 
needs to be or can be won. What helps is not to let lots of
developers work on it, and luckily for a Forth you don't 
need many.

-marcel

[toc] | [prev] | [next] | [standalone]


#41436

From"Rod Pemberton" <boo@fasdfrewar.cdm>
Date2015-08-21 07:19 -0400
Message-ID<op.x3ptq2izyfako5@localhost>
In reply to#41433
On Fri, 21 Aug 2015 04:46:55 -0400, <m.a.m.hendrix@tue.nl> wrote:

> I am not a big KISS proponent, but lately it has become clear to
> me that any program / programming system will develop into a
> monster of complexity over its lifetime (look at SPICE or Matlab,
> or gcc, or Linux ...). One should fight that, but not every battle
> needs to be or can be won.

I usually keep C programs small and dedicated for just this reason.

We've all seen the massively bloated Linux utilities, which do way
too much, have way too many parameters.  Yet, you can't use that one
utility to get the job done.  You still need two more utilities, each
of which do basically the same thing as the first, but they have one
additional feature the others don't have, which is needed to get the
job done.

e.g.,

'ps -e' and 'kill' versus 'pkill'
'du' versus 'df'
'find' versus 'ls'
'nc' versus 'nmap','telnet','ping'

Why are there three web browsers installed in Linux?


Rod Pemberton

-- 
Scientists now say we'll experience a mini-ice in 2030.
So, I guess we need more global warming today ...

[toc] | [prev] | [next] | [standalone]


#41581

Fromdunno <dunno@dunno.dunno>
Date2015-08-27 21:42 +0000
Message-ID<mro086$b7b$1@news.mixmin.net>
In reply to#41436
"Rod Pemberton" <boo@fasdfrewar.cdm> wrote:
> On Fri, 21 Aug 2015 04:46:55 -0400, <m.a.m.hendrix@tue.nl> wrote:
> 
>> I am not a big KISS proponent, but lately it has become clear to
>> me that any program / programming system will develop into a
>> monster of complexity over its lifetime (look at SPICE or Matlab,
>> or gcc, or Linux ...). One should fight that, but not every battle
>> needs to be or can be won.
> 
> I usually keep C programs small and dedicated for just this reason.
> 
> We've all seen the massively bloated Linux utilities, which do way
> too much, have way too many parameters.  Yet, you can't use that one
> utility to get the job done.  You still need two more utilities, each
> of which do basically the same thing as the first, but they have one
> additional feature the others don't have, which is needed to get the
> job done.
> 
> e.g.,
> 
> 'ps -e' and 'kill' versus 'pkill'
> 'du' versus 'df'
> 'find' versus 'ls'
> 'nc' versus 'nmap','telnet','ping'

Agreed.

> Why are there three web browsers installed in Linux?

Web browsers are different story (mostly for historical reasons and because
they have an UI). While I'm totally agree with you on other utilities, I
think browsers are not a good example of the problem, same as text editors,
graphic editors, or music composers.

> Rod Pemberton



-- 
dunno

[toc] | [prev] | [next] | [standalone]


#41412

Fromanton@mips.complang.tuwien.ac.at (Anton Ertl)
Date2015-08-20 08:10 +0000
Message-ID<2015Aug20.101038@mips.complang.tuwien.ac.at>
In reply to#41404
Mux <Yvo.Zoer@gmail.com> writes:
>Philosophical question...
>
>Where do you draw the line as to what's considered a forth implementation? I've got a minimal forth that's much closer to machine forth and (therefore) doesn't conform to any of the ANS-forth standards. Is that still considered forth?

Many non-standard compliant systems are considered Forth by most
people.  It's more an issue of some basic properties; probably most
people consider the requirements that Bernd Paysan posted as
essential, but many will also have additional requirements.  E.g.,
Wolf Wejgaards HolonForth does not support metaprogramming (e.g.,
writing macros), so I don't cosider it a full Forth.  Others may
disagree.

- 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 2015: http://www.rigwit.co.uk/EuroForth2015/

[toc] | [prev] | [next] | [standalone]


#41415

FromRoelf Toxopeus <rt4all@notthis.hetnet.nl>
Date2015-08-20 14:11 +0200
Message-ID<55d5c3e6$0$24053$e4fe514c@textnews.kpn.nl>
In reply to#41412
On 20/08/15 10:10, Anton Ertl wrote:
> Mux <Yvo.Zoer@gmail.com> writes:
>> Philosophical question...
>>
>> Where do you draw the line as to what's considered a forth implementation? I've got a minimal forth that's much closer to machine forth and (therefore) doesn't conform to any of the ANS-forth standards. Is that still considered forth?
>
> Many non-standard compliant systems are considered Forth by most
> people.  It's more an issue of some basic properties; probably most
> people consider the requirements that Bernd Paysan posted as
> essential, but many will also have additional requirements.  E.g.,
> Wolf Wejgaards HolonForth does not support metaprogramming (e.g.,
> writing macros), so I don't cosider it a full Forth.  Others may
> disagree.

I quite like this statement, thank you Anton!

Now Bernd's requirements might give the first impression for something 
being Forth or not. Some, like me, might put the useability, the 
practical usage, as the first most requirement. There are some systems 
called Forth(ish) I'd rather not use.

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.forth


csiph-web