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.

for V~CTOR 9000<br />

Microcomputer<br />

DAI-E Chinese Language<br />

Computing System Including:<br />

0 5000 most common Chinese<br />

c ha rac ters-can be transmitted<br />

in accordance with established<br />

CCCl 1 Communications Code.<br />

0 Chinese word processor<br />

0 Chinese Forth<br />

Available Fourth Quarter 1983-Cali For Price<br />

Dai-E FORTH=<br />

Beginner‘s Package in<br />

Fig-FORTH Style<br />

US $1 5000<br />

Dai-E FORTH Leveln<br />

Professional Level FORTH<br />

Package<br />

Conforms with proposed 1983 standara<br />

Features<br />

On line Documentation,<br />

Deco m p i I e r, Debugger (tracer)<br />

Viewer (help), Line Editor<br />

and Screen Editor, 8086/8088<br />

Assembler, Meta Compiler,<br />

Double precision Math<br />

extensions, Native Operating<br />

System file handler, True LRU<br />

disk buffer mechanism, Separate<br />

header, Graph ics/Sound<br />

Interface, Hashed dictionary<br />

structure, Multi-tasking<br />

Available for CP/M, MS-DOS, or<br />

stand-alone versions<br />

US $35000<br />

DAI-E GRAPHICS with optical mouse<br />

Available fourth quarter 1983<br />

SEE US AT BOOTH #16<br />

FORTH INTERNATIONAL CONFERENCE<br />

Oct. 14 & 15,1983 - PAL0 ALTO, CA.<br />

DAI-E<br />

SYST ’EMS<br />

INC.<br />

MULTI-LANGUAGE<br />

COMPUTING SYSTEMS<br />

503/682 -32 0 1<br />

29783 Town Center Loop West 0 P 0 Box 790<br />

Wilsonville, Oreqon - 97070 U.S.A.<br />

RPN Blues - Revisited<br />

Dear FIG:<br />

I have been trying to implement<br />

Forth on my system for two years now,<br />

but failed because of not having a good<br />

assembler for my system. In those two<br />

years I mostly did not work on the<br />

Forth system because of frustration.<br />

But now I had the opportunity to work<br />

with Forth on a friend’s machine. Su-<br />

per!<br />

There is one thing I think could pro-<br />

vide an improvement in readability of<br />

Forth programs: do the control struc-<br />

tures have to be in reversed polish no-<br />

tation, or wouldn’t it fit in the Forth<br />

concept otherwise? How about control<br />

structures as below:<br />

FIG-Forth 79<br />

DO . . . . (+)mop<br />

(cond) IF (true) THEN<br />

(cond) IF (true) ELSE (false) THEN<br />

BEGIN . . . . (cond) UNTIL<br />

BEGIN (cond) WHILE (true) REPEAT<br />

Other version<br />

kept as it is<br />

IF (cond) THEN (true) ENDIF<br />

[IF is only documentary, THEN checks<br />

condition<br />

ELSE is as before]<br />

BEGIN . . . . UNTIL (cond) FULFILLED<br />

[BEGIN is where to jump; UNTIL is<br />

documentary; FULFILLED<br />

is formerly UNTIL]<br />

WHILE (cond) REPEAT (true) ENDWHILE<br />

[WHILE marks where to jump; REPEAT<br />

checks if cond is true;<br />

ENDWHILE jumps to WHILE<br />

What do you think about it?<br />

Horst G. Kroker<br />

HCH-V-Meissen Str. 37<br />

Mainz LL2 6500<br />

W. Germany<br />

FORTH Dimensions 4<br />

Model Behavior<br />

Dear FIG:<br />

While working with a FIG-Forth sys-<br />

tem, I found a couple of things which<br />

may be of interest for inclusion in<br />

other compilers. First, there is a bug in<br />

the model’s implementation of the<br />

logic associated with ?RLIIRS which al-<br />

lows the construct<br />

IF . . . ELSE . . . ELSE . . .<br />

ELSE . . . THEN<br />

to be compiled without error. The ex-<br />

ecution of the resulting code is enter-<br />

taining, but not particularly useful. I<br />

would suggest fixing it via the follow-<br />

ing changes to the model:<br />

Screen 40:<br />

: ?PAIRS AND O= 13 ?ERROR i<br />

screen 73:<br />

: ENDIF ?COnP 6 ?PAIRS HERE OVER - SWAP ! i IMMEDIATE<br />

: DO COMPILE (DO) HERE 8 i IMMEDIATE<br />

: LOOP 0 ?PAIRS COMPILE (LOOP) BACK i IMMEDIATE<br />

: +LOOP 8 ?PAIRS COWPILE (+LOOP) BACK i IMMEDIATE<br />

screen 74:<br />

: ELSE 2 ?PAIRS COMPILE BRANCH HERE 0,<br />

SWAP 2 [COMPILE1 ENDIF 4 i IMMEDIATE<br />

Use of a bit-masked test thus allows<br />

THEN to follow either IF or ELSE but<br />

only allows ELSE to follow IF, which is<br />

what we want.<br />

The other thing is a compiler speed-<br />

up enhancement. I had always won-<br />

dered why the dictionary search scan-<br />

ned each entry character by character,<br />

even though the length was known, but<br />

just chalked it up to one of the mys-<br />

teries of Forth that I’d figure out some<br />

day. It should be noted, incidentally,<br />

that I always use a WIDTH of thirty-one.<br />

Just recently, however, I found out<br />

how things work with a width of less<br />

than thirty-one (I think) so I see the<br />

basic reason. However, I believe that<br />

things could be speeded up dramatical-<br />

ly by just using the lower of WIDTH and<br />

the length found in the dictionary<br />

header as an increment to skip to the<br />

end of the name. I use a 6801-based<br />

FIG system which was so modified and<br />

the compile times went down by over<br />

thirty percent for one system (around<br />

300 screens, would you believe).<br />

Best regards,<br />

Mike Armstrong<br />

7502 S.W. 143rd Ave.<br />

Miami, FL 33183<br />

(Continued on page 29)<br />

Volume V. No. 3

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

Saved successfully!

Ooh no, something went wrong!