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


Groups > comp.lang.forth > #45227

Re: Forth dictionary implementation and performance

Subject Re: Forth dictionary implementation and performance
References (1 earlier) <87fuxfrfk4.fsf@jester.gateway.pace.com> <2016Jan30.145924@mips.complang.tuwien.ac.at> <2016Jan30.183857@mips.complang.tuwien.ac.at> <87y4b5plac.fsf@jester.gateway.pace.com> <2016Feb1.071752@mips.complang.tuwien.ac.at>
Newsgroups comp.lang.forth
From "Elizabeth D. Rather" <erather@forth.com>
Organization FORTH, Inc.
Date 2016-01-31 21:27 -1000
Message-ID <beOdneLBgMhwlTLLnZ2dnUU7-R2dnZ2d@supernews.com> (permalink)

Show all headers | View raw


On 1/31/16 8:17 PM, Anton Ertl wrote:
> Paul Rubin <no.email@nospam.invalid> writes:
...
>> I have to ask, historically, did Forth in the minicomputer era really
>> use this linked list representation?  With a 1000 word vocabulary and
>> maybe 1 mhz memory cycle, that's a significant amount of time just doing
>> those lookups in a sizeable user program (10k tokens at 0.3 msec each is
>> 3 seconds right there).
>
> Yes, this was used; read the fig-Forth sources.  And 10k words is
> probably upwards of 100 screens, and loading that much from floppy
> disk takes more then 3 seconds, in particular since you would have to
> change the disk if it holds only 85KB as the early ones did.  Even
> earlier paper tape was used IIRC, and that was even slower.

figForth was a very simple system whose objective was to be simple to 
implement. As a consequence, it was pretty inefficient. Professional 
systems were a lot faster, using a multi-threaded linked list and other 
optimization techniques.

>> I guess the representation lets FORGET work
>> where hashing didn't, but did it matter?  I also remember something
>> about using multiple lists, then called "threads".
>
> Hashing with external chaining works fine with FORGET.  And yes, it
> does matter if you have only a few KB, so you cannot just load the
> changed code on top of the old one, and reloading the whole thing
> takes much longer than FORGETing and loading the code starting from
> the changed screen.  I have not used FORGET or MARKER except for
> testing purposes since the 1990s, but there are still a lot of people
> who use FORGET, resulting in it being not destandardized in
> Forth-2012.

Many of our customers in these days had extremely complex applications 
loaded on top of miniFORTH, microFORTH, or early polyFORTH. The standard 
system, when launched, had a FORGET boundary such that the application 
could be reloaded easily and quickly, without re-launching the entire 
system. But, yes, this was pretty obsolete by the 90's.

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 | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-29 17:42 +0000
  Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-01-29 16:20 -0800
    Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 13:54 +0000
      Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-01-31 11:57 -0800
        Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-02-01 06:47 +0000
          Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-02-01 00:47 -0800
            Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-02-01 11:13 +0000
  Re: Forth dictionary implementation and performance Bernd Paysan <bernd.paysan@gmx.de> - 2016-01-30 01:57 +0100
    Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 17:18 +0000
      Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 17:51 +0000
  Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-01-29 18:01 -0800
    Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 13:59 +0000
      Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 17:38 +0000
        Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-01-31 12:05 -0800
          Re: Forth dictionary implementation and performance Albert van der Horst <albert@spenarnc.xs4all.nl> - 2016-02-01 03:01 +0000
          Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-02-01 06:17 +0000
            Re: Forth dictionary implementation and performance "Elizabeth D. Rather" <erather@forth.com> - 2016-01-31 21:27 -1000
  Re: Forth dictionary implementation and performance hughaguilar96@gmail.com - 2016-01-30 15:42 -0800

csiph-web