Re: Re: if elseif elseif elseif....

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 6 Mar 2009 08:58:17 -0600, haliphax@xxxxxxxxx (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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux