Post by Roy
"goto". There is the problem right there.
I spent four years on a product on which "structured programming" and
"picture on a page" were rigidly enforced. "goto" was forbidden. We
turned out 1M lines of code in three years. Its probably been updated
and enhanced over the years but AFAIK it is still out there floating
around with 24 nuclear missiles attached.
I believe that. One of my companies founded in Los Altos in 1971 was
National Information Systems, Inc. (NIS).
The Pentagon was one of our larger customers and that's how I got to
use Emacs in 1975 and be exposed to ZORK. The Pentagon was using the
DEC20s as we were and they kept shipping tapes to us. :-) Another
large client was NUWES ([US] Naval Undersea Weapons Electronic Station)
using a DBMS I designed, developed, implemented, and shipped based on
structured programming design.
One of NIS' first contracts was with NASA/JPL to "prove" the tenets of
structured program design and portability. Very long story short -- we
succeeded and used those techniques in all our software which also was
ALWAYS QA'd for both regression and comprehensive testing. Regression
QA was to assure no old bugs or problems ever resurfaced and comprehensive
QA was to assure everything in the manual worked as documented.
One of my projects (over a period of six weeks) was to design/implement
a VTS (Vessel Test System) for light water nuclear reactors (LWR) for a
company named Dunegan/Endevco (ex. LLNL and moved to San Juan Capistrano).
In that six weeks I wrote an assembler on a CDC 3300 to compile assembly
code for an Interdata 8/32 used as the heart of the VTS, designed and coded
the VTS system, and took it down to San Juan Capistrano to install it on the
hardware. There was only one bug and it was Texas Instruments' fault due
to an error in carriage return timing with their thermal printers -- I was
able to patch a new value in and the system (multiple ones around the USA)
ran for decades with not one single bug thanks to structured design.
What I also had to design for the VTS was a super-high-speed floating-point
lib to handle the VTS data in real-time as it was being detected on the LWR
pressure spheres. Of interest is that modified quadraphonic photo cartridges
were held in a geodesic-like support over the pressure spheres and I had to
convert the inputs and draw on the CRT where faults very occurring on the
sphere -- this was shortly after the "discovery" that stressed metal produces
high frequency sound waves hence the need for the quadro photo cartridges
which operated to 55kHz. Bob Carver (brother of Bill Carver of Carver Audio)
was the hardware guy and, of course, I was the software guy.
I have used the structured design techniques ever since even after leaving
NIS after 20 years and my programs are bug-free. One of the most popular
ones in comp.sources.unix was my tprobe program; shortest URL to a shar
(ASCII text shell archive) of it today is here:
You can read about it in Dr. Dobbs Journal here (scroll down about 30%
or search for 'tprobe' on that page):
If you don't know what a shar file is, it's how we posted source code to
Usenet and it's described here: