home .. forth .. machineforth mail list archive ..

[MachineForth] Code Size, consulting vs chips


Many thanks Jeff for your answer, which clarifies several points,
particularly by emphasizing the difference between programming custom chips
and general programming e.g. on Intel processors.

Unlike many people with whom you seem to have come into contact, I actually
believe your description of Chuck's activities and results with code size,
perhaps mainly because (even though I have seen very little of Chuck's code
and have not understood well what I have seen) I have been impressed by the
very compact code produced by one or two other people influenced by Chuck.

Your account of the ANS-Forth programmers behavior was particularly
interesting.

One of the reasons I believe factoring and understanding of the
application, through many iterations, is key to reducing code size is that
a similar phenomenon works for writing technical papers in natural language
-- I tried for months to shorten some of my technical papers with little
success, also tuning them to give better scores on readability starting
with a program called Grammatik.  After trying every tip I could collect on
the subject, I finally found something in Strunk and White's (if I remember
the writers' names correctly) little book on writing that led me to sort
the sequence of the paragraphs in such a way that things were said only
once.  This produced an immediate 25 percent length reduction and
dramatically higher readability scores (from 40 up to 48-50 on one
measure), for relatively little effort on my part.  I think this is
analogous to doing each thing only one place in a Forth program, but with
programming the effect is a 90 percent length reduction instead of 25 percent.

The link I imagine between Chuck's general programming and his chip
designs, is that by microcoding he can continue the process of writing
things at the exact place where they should be written, once only, whereas
on e.g. Intel processors since you are locked out of the microcode you will
be doing things 10 times in your code that you could have done only once in
the microcode.  That is why I have been talking about those two worlds
interchangeably.

You raise issues of how to get other programmers to write more like Chuck
does, fight against "dumbing down", the need for some professionals who are
not interchangeable parts...

It was interesting in this context to hear that the MachineForth
programmers were able to follow Chuck's lead and had fewer problems with bugs.

Regard, David 


------------------------

To Unsubscribe from this list, send mail to Mdaemon@xxxxxxxxxxxxxxxxxx with:
unsubscribe MachineForth
as the first and only line within the message body
Problems   -   List-Admin@xxxxxxxxxxxxxxxxxx
Main Machine Forth site   -   http://www.