On Wed, 06 May 2009 08:54:14 -0400, [email protected] (Tom Worster) wrote:
.......
>clancy, i can't argue with you. my desired usage of break is really just a
>cover-up for a goto. i know.
>
>it makes no logical sense but i think i'd sooner adopt oop than gotos. my
>mom taught me to program back in the late 70s and early 80s. she was an old
>hand. when FORTRAN 4 came out she thought it was the bees knees. when Z80
>micros with MS-BASIC came out, she thought they were cute. when turbo pascal
>came out on CP/M, she was impressed and taught me to quit using gotos.
>
>so while it makes no logical sense, perhaps you can see that it makes
>emotional sense.
>
I can understand your reluctance to disregard your mother's advice, but
unfortunately she
had been brainwashed to accept the dogma of the day. I could never understand
the hysteria
relating to GOTO. Certainly it could be abused, as I knew to my cost, but it is
clear and
explicit, whereas both break and exception are disguised GOTO's with
ill-defined targets.
I started programming in 1967, in Fortran. There were only the most basic
computer
manuals, and CSIRO (for whom I worked) had a little computer (a CDC3200, with
32K of 24
bit words, and costing only $500,000) in each capital city, and a big computer
(a CDC3600,
with 64K of 48 bit words, and costing $2 million) in Canberra. Our local
computer was at
Clayton, and I worked at Highett, so a courier collected our punch cards twice
a day and
took them to the local computer, then brought back the results of the previous
run, giving
effectively one and a half runs a day.
When I got ambitious, and needed to use the big computer, my cards were put on
to mag tape
at Clayton, and flown to Canberra, where they were run through the 3600
overnight, and the
results written back to mag tape. Next morning the tapes were flown back to
Melbourne,
driven to Clayton, run through the 3200 to produce listings, and these were
then delivered
back to Highett. The flights were often delayed by fog in Canberra, and on
average we got
three runs a week.
Programming was in its infancy, and the idea of using a stack to handle
subroutines had
not been introduced (at least by CDC). The Fortran provided an assigned GOTO,
which really
was the perfect instruction for writing 'write only' code. It also permitted
you to jump
indiscriminately into, or out of, loops and subroutines, and it was probably
abuse of
these options which gave the GOTO its bad name.
I was developing a program for analysing linear electronic circuits, and
effectively
developed my own interpreted language. The program was very simple; it
consisted of a loop
containing three assigned GOTO's:
start: assign begin to switch_one
assign ........
next: read the next character
if it's a number, GOTO switch_one
if it's a punctuation mark, GOTO switch_two
GOTO switch_three
begin:
.....
GOTO next
end:
I left CSIRO in 1973, and did not have access to a big computer until about
1983. By this
time the assigned GOTO had long since vanished, and I had great difficulty
understanding
my original logic, until I unrolled the inner loop into a logical progression
through the
possible inputs.
For the next 20 years most of my programming was in 8x86 MASM. This also had
the GOTO, and
I was able to write extremely complex programs, despite its inherent verbosity,
by
developing subroutines to handle all the basic procedures, and using GOTO's to
define the
control structure.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php