On Fri, 6 Mar 2009 08:58:17 -0600, halip...@gmail.com (haliphax) wrote:

>>> >> >    I wholeheartedly concur.  The first programming language I taught
>>> >> > myself was BASIC about 23 years ago.  We may never see the inclusion
>>> >> > of GOSUB in PHP, but GOTO is certainly worthwhile.
>>> >> >
>>> >> >
>>> >> >    Side note: I wrote a BASIC interpreter in PHP about two weeks ago.
>>> >> >  Talk about fond memories.
>>> >>
>>> >> QuickBasic (actually QBasic, and then later QuickBasic when my mom
>>> >> shelled out the money for me to buy it) was my first language. I
>>> >> remember being completely flabbergasted when I found out they packaged
>>> >> an interpreter with DOS, and it had been under my nose the whole time.
>>> >> I think my first "finished" program was a D&D character generator.
>>> >> Basically, just colored and formatted text with the output of 6 or so
>>> >> random number generations.
>>> >>
>>> >> Meeeeeemoriiiieeeeees... :D
>>> >
>>> > I did Basic on the TRS-80 and saved my programs to a big clunky audio
>>> > tape drive... 1... 2... 3... queue Tedd with rocks :)
>>>
>>> Oh, I'm not even trying to pretend like I'm half as old as some on
>>> this list. I still chew my own food, thank you very much. ;)
>>>
>>> (All in jest, of course... But some of you are pretty old. Ha!)
>>
>> I just turned 35... today... that's young by the standards of a 70 year
>> old >:)
>
>Well, I may not be decrepit just yet, but I am by no means a
>whippersnapper anymore. Looking at turning 27 this April. I'm sure
>some of the more geriatric people in the world still consider me a
>kid, but I can look at teenagers now and think, "What the hell are
>they doing that for?"

Yes, when I went to university the students were young adults. Now they are 
just kids!

When I started programming (in about 1967) I worked for the Commonwealth 
Scientific and
Industrial Research Organisation (CSIRO) in Australia. They had a little 
computer (a CDC
3200, costing $500,000 and with 32K of 24 bit words of core memory) in each 
capital city,
and a big computer (a CDC 3600, costing $2,000,000 and with 64K of 48 bit words 
of memory)
in Canberra. The little computers filled a large room, and had about 20 people 
operating
them. The big one filled a whole floor, and had about 50 people operating it.

I had to enter my programs on punch cards, and a courier would collect them 
twice a day
and take them to Clayton (another site about 10 miles away). Then he would 
bring back the
listings from the previous trip. After the morning run we had about 20 minutes 
to fix
obvious bugs before he collected the next batch, and we had overnight to fix 
the afternoon
run. When I got more ambitious, and started using the big computer, the cards 
were taken
to Clayton where they were transferred to mag tape, which was couriered to the 
airport and
flown to Canberra. The tapes were run overnight, and the listings written back 
to tapes,
which were flown back to Melbourne next morning, taken to Clayton, transferred 
to paper,
and brought back to our site. There was often fog in Canberra, which would 
close the
airport, so if we were lucky we would get three runs in a week. Any trivial 
change would
take a week to debug.

We were programming in Fortran, and the I/O support was extremely primitive. 
You had to
specify the format for every value you wished to read - eg F10.3 for a 10 digit 
floating
point number, with three digits after the decimal point, and you had to place 
the decimal
point in a specific column on the card. Despite all this I wrote a complex 
program for
analysing linear electronic circuits. It was effectively an interpreter for my 
own
high-level language.

I never understood how subroutines worked, as the concept of stacks had not been
developed, and you could jump into or out of loops and even subroutines with 
impunity. It
also had an 'assigned goto' instruction, which was perfect for writing 'write 
only'
software. My program was very simple. It consisted of a loop:

Assign initial pointers to switches 1 to 3;
Start: read a character;
        if it's a number { GOTO switch_1; }
        if it's a punctuation mark { GOTO switch_2; }
        if it's anything else { GOTO switch_3; }
        GOTO Start;

Initial_switch_1 procedure:
        .....
        GOTO start;

Each time I found something interesting I would assign a new pointer to the 
appropriate
switch. This gave extremely compact code, enabling me to get my complicated 
program into
the ridiculously small memory, but I soon found that it was virtually 
impossible to debug,
as the settings of the switches at any moment depended on the whole previous 
history.

Presumably others made the same discovery, as the assigned goto never appeared 
on any
subsequent computer.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to