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


Groups > comp.lang.forth > #22031

Re: The most elegant Forth interpreter.

Date 2013-04-29 08:07 -1000
From "Elizabeth D. Rather" <erather@forth.com>
Organization FORTH, Inc.
Newsgroups comp.lang.forth
Subject Re: The most elegant Forth interpreter.
References (2 earlier) <rvednfZHdr8rQuHMnZ2dnUVZ_qidnZ2d@supernews.com> <517d1d05$0$6365$e4fe514c@dreader35.news.xs4all.nl> <i8WdnTKGo8GaAeDMnZ2dnUVZ_rydnZ2d@supernews.com> <7x61z6dt5d.fsf@ruckus.brouhaha.com> <AsydnQSMvYzfsuPMnZ2dnUVZ_oGdnZ2d@supernews.com>
Message-ID <_IydnS9MuYNaK-PMnZ2dnUVZ_jqdnZ2d@supernews.com> (permalink)

Show all headers | View raw


On 4/28/13 10:28 PM, Andrew Haley wrote:
> Paul Rubin <no.email@nospam.invalid> wrote:
>> Andrew Haley <andrew29@littlepinkcloud.invalid> writes:
>>> It would be good if it could follow the tradition of fig-FORTH in the
>>> sense that it was written entirely in Forth rather than starting with
>>> assembly language.
>>
>> Was an all-Forth version of fig-FORTH ever released?
>
> Absolutely.  That came first.  I've got the source, but only on paper.
>
>> All the versions I've seen contain assembly code for the primitives,
>> that apparently came out of a disassembler after being metacompiled.
>> I had wondered for a while if it was handwritten assembly code.
>
> Sort of.  fig-FORTH was written for the 6502 and metacompiled with a
> Forth, Inc system.  I don't know how the 6502 assembly code listing
> was created, but it was binary-identical to the code generated by the
> metacompiler, or very nearly so.  Variants for all other processors
> were hand-translated from the 6502 version.

In the History of Forth (by me, Chuck, and Don Colburn), 
http://www.forth.com/resources/evolution/index.html, Don described the 
original development of figForth:

"Bill Ragsdale, a successful Bay Area security system manufacturer, 
became aware of the benefits of microFORTH, and in 1978 asked FORTH, 
Inc. to produce a version of microFORTH for the 6502. FORTH, Inc. 
declined, seeing much less market demand for microFORTH on the 6502 than 
the more popular 8080, Z80 and 6800 CPUs.

Ragsdale then looked for someone with the knowledge of microFORTH and 
intimate familiarity with the 6502 to port a version of microFORTH to 
the 6502. He found Maj. Robert Selzer, who had used microFORTH for an 
AMI 6800 development system on an Army project and was privately 
developing a standalone editor/assembler/linker package for the 6502. 
Selzer wrote a 6502 Forth assembler, and used the Army's microFORTH 
metacompiler to target compile the first 6502 stand-alone Forth for the 
Jolt single board computer.

Selzer and Ragsdale subsequently made substantial modifications and 
improvements to the model, including exploitation of page zero and 
stack-implicit addressing architectural features in the 6502. Many of 
the enhancements that characterized the later public-domain versions 
were made during this period, including variable-length name fields and 
modifications to the dictionary linked-list threading. A metacompiler on 
the Jolt could target a significantly changed kernel to a higher address 
in memory. A replacement bootable image would then be recompiled by the 
new kernel into the lower boot address, which could then be written out 
to disk. At this point, Ragsdale had a system with which to meet his 
professional needs for embedded security systems.

During this period the Forth Interest Group (FIG) was started by 
Ragsdale, Kim Harris, John James, David Boulton, Dave Bengel, Tom Olsen 
and Dave Wyland [FIG 1978]. They introduced the concept of a "FIG Forth 
Model," a publicly available Forth system that could be implemented on 
popular computer architectures.

The FIG Forth Model was derived from Ragsdale's 6502 system. In order to 
simplify publication and rapid implementation across a wide variety of 
architectures, a translator was written to convert Forth metacompiler 
source code into text that, when input to a standard 6502 assembler, 
would replicate the original kernel image. In this way, neither the 
metacompiler nor its source code needed to be published. This is an 
important point. Forth metacompilation is a difficult process to 
understand completely. It requires the direct manipulation of three 
distinct execution phases and object areas, and is not something that a 
casual user wanted or needed.

By publishing assembler listings, the Forth Interest Group was able to 
encapsulate a Forth run-time environment in a manner that could be 
easily replicated and/or translated to the assembly language of a 
different computer architecture. It was the intention of the original 
team of implementors to thus stimulate the development of compatible 
Forth systems and the appearance of new vendors of Forth products."

Don helped in Selzer's portion of the project.

Cheers,
Elizabeth

-- 
==================================================
Elizabeth D. Rather   (US & Canada)   800-55-FORTH
FORTH Inc.                         +1 310.999.6784
5959 West Century Blvd. Suite 700
Los Angeles, CA 90045
http://www.forth.com

"Forth-based products and Services for real-time
applications since 1973."
==================================================

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

The most elegant Forth interpreter. albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-27 09:13 +0000
  Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-04-27 22:46 -0700
    Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-28 03:37 -0500
      Re: The most elegant Forth interpreter. albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-28 12:58 +0000
        Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-28 17:00 -0500
          Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-04-28 18:26 -0700
            Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-29 03:28 -0500
              Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-04-29 01:38 -0700
                Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-04-29 01:43 -0700
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-29 04:01 -0500
                Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-05-10 21:20 -0700
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-11 02:03 -0500
                Re: The most elegant Forth interpreter. David Schultz <abuse@127.0.0.1> - 2013-05-11 11:01 -0500
                Re: The most elegant Forth interpreter. David Schultz <abuse@127.0.0.1> - 2013-05-11 15:53 -0500
                Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-05-11 20:59 -0700
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-12 02:40 -0500
              Re: The most elegant Forth interpreter. "Elizabeth D. Rather" <erather@forth.com> - 2013-04-29 08:07 -1000
                Re: The most elegant Forth interpreter. Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-29 20:55 +0200
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-29 16:28 -0500
                Re: The most elegant Forth interpreter. Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-29 23:35 +0200
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-29 17:28 -0500
                Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-04-29 23:20 -0700
                Re: The most elegant Forth interpreter. "Elizabeth D. Rather" <erather@forth.com> - 2013-04-29 21:11 -1000
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-30 03:21 -0500
                Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-04-30 01:57 -0700
                Re: The most elegant Forth interpreter. albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-30 09:00 +0000
                Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-04-30 02:10 -0700
                Re: The most elegant Forth interpreter. albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-30 14:34 +0000
                Re: The most elegant Forth interpreter. Coos Haak <chforth@hccnet.nl> - 2013-04-30 17:18 +0200
                Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-04-30 10:04 -0700
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-30 04:13 -0500
                Re: The most elegant Forth interpreter. Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-30 18:40 +0200
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-30 12:50 -0500
                Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-05-03 22:01 -0700
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-30 04:09 -0500
                Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-05-06 19:29 -0700
                Re: The most elegant Forth interpreter. Elizabeth D Rather <erather@forth.com> - 2013-04-29 12:35 -1000
                Re: The most elegant Forth interpreter. Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-30 01:50 +0200
                Re: The most elegant Forth interpreter. "Elizabeth D. Rather" <erather@forth.com> - 2013-04-29 13:55 -1000
                Re: The most elegant Forth interpreter. albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-30 09:03 +0000
            Re: The most elegant Forth interpreter. albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-29 10:32 +0000
              Re: The most elegant Forth interpreter. Paul Rubin <no.email@nospam.invalid> - 2013-04-29 08:34 -0700
                Re: The most elegant Forth interpreter. "Rod Pemberton" <do_not_have@notemailnotq.cpm> - 2013-04-29 17:31 -0400
                Re: The most elegant Forth interpreter. Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-29 17:56 -0500
              Re: The most elegant Forth interpreter. lynx <rinkasu@kaze.void.null> - 2013-04-29 22:38 +0000
    Re: The most elegant Forth interpreter. "Ed" <invalid@nospam.com> - 2013-04-29 12:31 +1000
      Re: The most elegant Forth interpreter. Spam@ControlQ.com - 2013-04-29 13:31 -0400
  Re: The most elegant Forth interpreter. jlarsonfour3@gmail.com - 2013-04-29 08:14 -0700
  Re: The most elegant Forth interpreter. the_gavino_himself <visphatesjava@gmail.com> - 2013-04-29 10:28 -0700

csiph-web