On Mar 18, 2011, at 4:07 PM, DJ Delorie wrote:

> And your kind of bottom-up design never gets done at all, because of
> impossible-to-meet requirements for unlimited flexibility.

"My kind" of bottom-up design is precisely what Ritchie did when he invented C. 
Contrast C with PL/I, the language it replaced (at least in my world). C is 
designed to economically reflect the capabilities of the hardware on which it 
is based. PL/I was designed from "use cases" derived from existing programs in 
Fortran, Algol, and Cobol.

The designers of PL/I were the world's leading experts on programming languages.

PL/I was a conceptual mess, loaded with "features" that seemed useful and 
plausible, but which in real programs caused (at best) miserable inefficiency, 
and (at worst) seriously unpredictable behavior. These "features" included many 
kinds of high level constructs like string manipulation, I/O, and multitasking.

In contrast, C represents the common features of the hardware in an open-ended 
way that allows programmers to extend the language by composition. So "PUT" is 
a language feature in PL/I, while printf() is a library function in C (itself 
written in C). That's good factoring, yielding unlimited flexibility. That good 
factoring also made C much easier to implement than PL/I.

Proper bottom-up design *never* results in "impossible-to-meet requirements" 
because it starts from capabilities. What can a layered description of tame 
plane geometries (no fractals ;-) actually represent? Not so hard.

John Doty              Noqsi Aerospace, Ltd.
http://www.noqsi.com/
j...@noqsi.com




_______________________________________________
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

Reply via email to