V5N3 - Complang
V5N3 - Complang
V5N3 - Complang
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
polyFORTH II<br />
The Operating System and<br />
Programming Language<br />
designed especially for<br />
REAL-TI M E<br />
Robotics<br />
Instrumentation<br />
Process Control<br />
Graphics<br />
... and many more.<br />
polyFORTH II has the high-per-<br />
formance features you need to<br />
slash development time by months:<br />
POWER<br />
All the programming tools you<br />
need - multiprogrammed OS,<br />
FORTH compiler and assembler,<br />
editor, over 400 primitives and de-<br />
bugging aids - resident and ready<br />
to use.<br />
SPEED<br />
3-5 times faster than Pascal, 20<br />
times faster than Basic, with a resi-<br />
dent assembler for time-critical<br />
functions.<br />
MULTITASKINGIMULTI-USER<br />
Supports any number of tasks.<br />
Even the smallest systems may<br />
have two or more programmers<br />
coding and testing interactively.<br />
COMPACT CODE<br />
Entire development system resi-<br />
dent in under 12K. ROMable appli-<br />
cations can run under 1K. Large<br />
applications up to 10 times small-<br />
er than with other techniques.<br />
SUPPORT<br />
On-line interactive documentation,<br />
over a thousand pages of manuals,<br />
FORTH Programming Courses,<br />
and the FORTH, Inc. Hot Line plus<br />
Contract Programming and Consulting<br />
Services.<br />
Available for most popular minis<br />
and micros. From FORTH, Inc., the<br />
inventors of FORTH, serving professional<br />
FORTH programmers for<br />
ten years.<br />
FORTH, Inc.<br />
2309 Pacific Coast Hwy.<br />
Hermosa Beach<br />
CA 90254<br />
(213) 372-8493<br />
TWX 91 0-344-6408<br />
(FORTH INC HMBH)<br />
'(tick). In 79-Standard, FIND wasn't of<br />
much use so most people used the<br />
state-smart '(tick). This led to<br />
problems, since some state-smart<br />
words must be used cautiously when<br />
compiled within a colon definition.<br />
The solution adopted was to make all<br />
words state-dumb and to add words to<br />
handle some of the lost functions. FIND<br />
was later made useful, yet state-dumb<br />
words remain.<br />
A side effect of the state-dumb<br />
"sweep" is that some words were made<br />
statedumb that would have been bet-<br />
ter left state-smart regardless of the<br />
'(tick) decision. For example, there is<br />
no reason why ABORT" should be state-<br />
dumb. The system-dependent func-<br />
tions associated with ABORT only<br />
appear within ABORT". ABOFrl" could<br />
have been of great use outside of a<br />
colon definition, yet that has now been<br />
precluded.<br />
Some current systems use mono-<br />
addressing (e.g.CFA or PFA), yet the<br />
standard now dictates dual-addressing<br />
(e.g.CFA and PFA). This tradeoff<br />
favors an easier implementation and<br />
was the subject of many hours of dis-<br />
cussion. Some of the original dissen-<br />
tors still believe that a mono-<br />
addressing system is easier to use.<br />
Disk (mass storage) I/O has been<br />
changed to disallow altering the data<br />
within a block buffer unless UPDATE is<br />
also used. Even if EMPTY-BUFFERS<br />
(which is no longer a required word)<br />
were used, the alterations might still be<br />
written to disk. Combined with the<br />
multi-tasking implications, BUFFER can<br />
no longer be used for a temporary<br />
scratch or data collection area. Al-<br />
though this codifies good program-<br />
ming practice, there are valid reasons<br />
why the standard should not be so<br />
restrictive.<br />
A minor but grating problem is that<br />
the FST itself is always trying to allow<br />
a wide variety of actual or possible im-<br />
plementations. This has caused some<br />
problems and ambiguities within the<br />
standard. This is more an underlying<br />
political problem than a technical one,<br />
but the results affect the standard tech-<br />
nically:<br />
The ] (right-bracket) definition is<br />
ambiguous. Different systems are im-<br />
plemented such that the same sup-<br />
posedly transportable standard<br />
program produces different results on<br />
the different systems.<br />
Vocabularies have always been a<br />
problem. The standard attempts to<br />
resolve this issue, but actually leaves<br />
some gaping holes. Because search or-<br />
ders are not definitively stated, a stan-<br />
dard program will have some difficulty<br />
using vocabularies and search orders.<br />
Consumers will have great difficulty<br />
determining if a system is actually<br />
Forth-83. Although this has always<br />
been a problem, it will be worse this<br />
time because 79-Standard systems<br />
have been marketed. Implementors<br />
will have difficulty determining or<br />
choosing to make some of the subtle<br />
changes from 79-Standard.<br />
The standard should codify existing<br />
practice. Instead, new concepts have<br />
been accepted without a complete test-<br />
bed existing with which to gain<br />
experience. In most cases, these new<br />
concepts are going to be proven<br />
correct, but what about the ones that<br />
aren't? Where will we be in four or five<br />
years if next month we find that one of<br />
these insufficiently tested concepts<br />
causes a problem?<br />
It is difficult to judge the impact of<br />
some of these technical or philosophi-<br />
cal concerns. Time and experience will<br />
tell whether the decisions made for<br />
Forth-83 were correct. Although it is<br />
difficult, we must temper our frenzy<br />
for having a new standard with a striv-<br />
ing for reasonable perfection of the<br />
standard.<br />
FORTH Dimensions 28 Volume V, No. 3