Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #17637
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: DTC |
| Date | 2012-11-28 14:21 +0000 |
| Organization | Institut fuer Computersprachen, Technische Universitaet Wien |
| Message-ID | <2012Nov28.152154@mips.complang.tuwien.ac.at> (permalink) |
| References | <ad599bc5-3e28-4fe0-a2d5-dc9b9dfb2255@eo2g2000vbb.googlegroups.com> |
Mark Wills <forthfreak@gmail.com> writes:
>Very nice write-up here about the Forth virtual machine, complete with
>links to our very own Anton Ertl's pages:
>
>http://www.wordiq.com/definition/Forth_virtual_machine
>
>One thing that struck me, it mentions that direct threaded is not as
>"flexible" as ITC. I was wondering in what respect DTC is less
>flexible? Anyone have any opinions/comments?
You would best ask the author of that page what is meant.
According to Wikipedia:
|A famous aphorism of David Wheeler goes: "All problems in computer
|science can be solved by another level of indirection"
The indirection in ITC was not introduced gratuitiously; in
particular, it allows to treat words more uniformly. I don't know if
that is the flexibility that is meant there, though.
A typical DTC approach in Forth (used in gforth-0.5 on some machines)
would be to emulate ITC by replacing the indirect pointer in the code
field with a jump (or call) to the routine. One loss of flexibility
here is that creating a non-primitive now requires machine-dependent
code.
Another approach is the primitive-centric approach used since
gforth-0.6. There the threaded code contains only primitives and
their immediate arguments, and other words are compiled to a primitive
and an argument, e.g., a call to a colon definition is compiler to the
primitive CALL plus the body address of the colon definition. This
does not require machine-dependent code, but one cannot patch, e.g., a
variable into a deferred word in a way that affects existing uses of
the variable (whereas that works in ITC). Also, COMPILE, now becomes
much more complex.
You might be interested in
@InProceedings{ertl02,
author = {M. Anton Ertl},
title = {Threaded Code Variations and Optimizations (Extended
Version)},
booktitle = {Forth-Tagung 2002},
year = {2002},
address = {Garmisch-Partenkirchen},
url = {http://www.complang.tuwien.ac.at/papers/ertl02.ps.gz},
abstract = {Forth has been traditionally implemented as indirect
threaded code, where the code for non-primitives is
the code-field address of the word. To get the
maximum benefit from combining sequences of
primitives into superinstructions, the code produced
for a non-primitive should be a primitive followed
by a parameter (e.g., \code{lit} \emph{addr} for
variables). This paper takes a look at the steps
from a traditional threaded-code implementation to
superinstructions, and at the size and speed effects
of the various steps.\comment{It also compares these
variants of Gforth to various other Forth
implementations on contemporary machines.} The use
of superinstructions gives speedups of up to a
factor of 2 on large benchmarks on processors with
branch target buffers, but requires more space for
the primitives and the optimization tables, and also
a little more space for the threaded code.}
}
- 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 2012: http://www.euroforth.org/ef12/
Back to comp.lang.forth | Previous | Next — Previous in thread | Find similar | Unroll thread
DTC Mark Wills <forthfreak@gmail.com> - 2012-11-27 08:01 -0800
Re: DTC Paul Rubin <no.email@nospam.invalid> - 2012-11-27 08:55 -0800
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-11-27 09:01 -0800
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-11-27 17:42 -0800
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-11-27 23:50 -0800
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-28 04:41 -0600
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-11-28 02:48 -0800
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-28 05:27 -0600
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-11-28 03:51 -0800
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-11-28 21:56 -0800
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-11-29 01:26 -0800
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-11-29 22:34 -0800
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-11-30 01:42 -0800
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-11-30 13:18 -0800
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-01 01:42 -0800
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-12-03 15:25 -0800
Re: DTC Alex McDonald <blog@rivadpm.com> - 2012-12-03 16:18 -0800
Re: DTC "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-12-03 21:20 -0500
Re: DTC "Elizabeth D. Rather" <erather@forth.com> - 2012-12-03 17:29 -1000
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-04 00:12 -0800
Re: DTC Paul Rubin <no.email@nospam.invalid> - 2012-12-05 11:35 -0800
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-12-04 20:17 -0800
Re: DTC Ron Aaron <rambamist@gmail.com> - 2012-12-05 08:31 +0200
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-04 23:48 -0800
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-04 23:53 -0800
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-12-05 12:13 -0800
Re: DTC Alex McDonald <blog@rivadpm.com> - 2012-12-05 15:26 -0800
Re: DTC Ron Aaron <rambamist@gmail.com> - 2012-12-06 06:32 +0200
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-06 01:07 -0800
Re: DTC Alex McDonald <blog@rivadpm.com> - 2012-12-06 04:23 -0800
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-06 15:49 +0100
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-06 07:42 -0800
Re: DTC Alex McDonald <blog@rivadpm.com> - 2012-12-06 08:30 -0800
Re: DTC Paul Rubin <no.email@nospam.invalid> - 2012-12-06 09:45 -0800
Re: DTC albert@spenarnc.xs4all.nl (Albert van der Horst) - 2012-12-06 21:41 +0000
Re: DTC "A. K." <akk@nospam.org> - 2012-12-06 23:15 +0100
Re: DTC albert@spenarnc.xs4all.nl (Albert van der Horst) - 2012-12-08 01:27 +0000
Re: DTC "A. K." <akk@nospam.org> - 2012-12-08 11:19 +0100
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-08 03:55 -0800
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-08 13:44 +0100
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-08 06:05 -0800
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-08 18:35 +0100
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-08 11:20 -0800
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-09 01:01 +0100
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-08 06:10 -0800
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-08 18:57 +0100
Re: DTC "A. K." <akk@nospam.org> - 2012-12-08 19:46 +0100
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-08 11:23 -0800
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-08 13:37 +0100
Re: DTC "A. K." <akk@nospam.org> - 2012-12-08 14:41 +0100
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-08 06:15 -0800
Re: DTC "A. K." <akk@nospam.org> - 2012-12-08 17:07 +0100
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-06 14:16 -0800
Re: DTC Brad Eckert <hwfwguy@gmail.com> - 2012-12-07 09:00 -0800
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-06 14:21 -0800
Re: DTC "Elizabeth D. Rather" <erather@forth.com> - 2012-12-06 08:01 -1000
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-06 14:18 -0800
Re: DTC "Elizabeth D. Rather" <erather@forth.com> - 2012-12-06 13:48 -1000
Re: DTC "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-12-06 19:03 -0500
Re: DTC Alex McDonald <blog@rivadpm.com> - 2012-12-07 02:59 -0800
Re: DTC albert@spenarnc.xs4all.nl (Albert van der Horst) - 2012-12-06 13:13 +0000
Re: DTC "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-12-05 20:39 -0500
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-06 15:46 +0100
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-12-06 07:47 -0800
Re: DTC Alex McDonald <blog@rivadpm.com> - 2012-12-06 08:36 -0800
Re: DTC Alex McDonald <blog@rivadpm.com> - 2012-12-05 04:03 -0800
Re: DTC "Clyde W. Phillips Jr." <cwpjr02@gmail.com> - 2012-12-06 20:30 -0800
Re: DTC David Thompson <dave.thompson2@verizon.net> - 2012-12-11 23:52 -0500
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-12-12 10:59 -0800
Re: DTC David Thompson <dave.thompson2@verizon.net> - 2012-12-31 02:43 -0500
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-01-02 00:44 -0800
Re: DTC albert@spenarnc.xs4all.nl (Albert van der Horst) - 2012-11-28 13:54 +0000
Re: DTC "Clyde W. Phillips Jr." <cwpjr02@gmail.com> - 2012-12-06 20:16 -0800
Re: DTC "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-11-28 06:58 -0500
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-11-28 04:50 -0800
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-28 07:08 -0600
Re: DTC Mark Wills <forthfreak@gmail.com> - 2012-11-28 06:02 -0800
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-28 08:23 -0600
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-11-28 14:18 +0000
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-28 08:32 -0600
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-11-28 15:00 +0000
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-28 09:18 -0600
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-11-28 16:36 +0000
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-28 11:02 -0600
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-11-28 17:13 +0000
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-28 12:03 -0600
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-11-28 18:12 +0000
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-28 12:32 -0600
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-11-29 14:30 +0000
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-11-29 18:05 +0100
Re: DTC Alex McDonald <blog@rivadpm.com> - 2012-11-29 11:19 -0800
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-30 03:14 -0600
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-11-30 14:12 +0000
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-30 10:32 -0600
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-11-30 16:40 +0000
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-12-01 15:34 +0000
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-01 21:23 +0100
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-12-03 16:28 +0000
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-03 18:44 +0100
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-12-03 04:50 -0600
Re: DTC Bernd Paysan <bernd.paysan@gmx.de> - 2012-12-03 16:48 +0100
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-12-03 15:59 +0000
Re: DTC albert@spenarnc.xs4all.nl (Albert van der Horst) - 2012-11-30 15:34 +0000
Re: DTC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-11-30 10:36 -0600
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-11-30 12:47 -0800
Re: DTC Alex McDonald <blog@rivadpm.com> - 2012-11-28 11:29 -0800
Re: DTC "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-11-29 04:15 -0500
Re: DTC "Elizabeth D. Rather" <erather@forth.com> - 2012-11-29 08:52 -1000
Re: DTC Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-11-28 22:25 -0800
Re: DTC "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-11-29 04:12 -0500
Re: DTC humptydumpty <ouatubi@gmail.com> - 2012-11-28 02:04 -0800
Re: DTC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-11-28 14:21 +0000
csiph-web