CompuServe Messages

schematics

#: 48310 S11/HardwareForum unknown
    12-Jan-87 01:52:57
Sb: #47976-schematics
Fm: Jim Nelson 76174,2142
To: Todd Weiss 76526,1135

This message turned up in search, but its forum couldn’t be identified from the original transcript, so it may not be linked into its thread.

Todd, I can't disagree much. Since C is so popular, there exist a plethora of tools and utilities that facilitate its use, also a larger pool of programmers from which to choose. Those are sound business reasons. But in my field, the world of real time, motion, robots, and sensory control, nothing can substitute for the ability to interact and experiment with the system. The C programmer has to watch a compiler generate BS for half an hour whenever they want to try something new. The best thing about forth, and one which I discovered only after using forth in the ordinary way for about 1 1/2 years, is that one may construct their own language in forth. In that way, it is an analog of Lisp. Last year I completed a microcontroller in which the upper 50% of the object code contained only 13 instances of traditional control structures (e.g. IF-ELSE-THEN CASE-OF-ENDOF BEGIN-UNTIL). The single structure with which I replaced these was the finite state machine. In forth I constructed a set of compiling words which enabled me to explicitly describe fsms, and in so doing actually compile the code which formed the fsm. I made things even cleaner by using multiple code field operators (not my invention) that allowed me to treat the finite state machines as first order objects and use message passing (early binding when compiled) to initialize them, get their present state, or feed them an input. The fsms and four other types of objects held all the state information internally. Which means that I didn't have to name a lot of variables, or use a lot of traditional control structures to continuously evaluate the state of the system. What I have is a microcontroller smalltalk without inheritance, which allowed the standalone system I barely described to fit into a 16 Kbyte eprom. If you're interested I can email you a canned description that contains example code; I've shown it to a couple other people hereabouts.