22.10.2013 Views

V5N3 - Complang

V5N3 - Complang

V5N3 - Complang

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!