| « Prev | Page 1 | Page 2 | Page 3 | Next » |
|
Wait, so the compiler basically went ground to a halt when given a deck of invalid (well, non-COBOL) instructions, instead of just tossing them? I nominate this as "The Real WTF (tm)!" |
It does sound kind of fishy, but these machines could not house some of the "luxuries" we know today, like sanity checks. I would like to know how and why this particular maneuver caused this particular condition. Also, I wonder why no one thought to snip more wires for even better performance? |
|
Eleventy billion dollars $Texas |
|
I wasn't coding in '71, but I remember punch cards, 110 baud teletypes in 130 degree rooms, and the luxury of occasional access to a 300 baud crt. Never saw the mainframe grind to a halt from a bad deck, tho.
|
I'd imagine the compiler and parser technology was simply not as sophisticated as it is today, coupled with less memory and processing power. So it might take a card filled with garbage and go bonkers checking every possible permutation to try to make some sense out of it. Or maybe Albert wrote the compiler too? |
|
And hence was born the first ever script kiddy who went on to nearly break into the local schools databank, who almost comprimised the local tel-coms wiring infrastructure and who actually once bypassed the security of a local gumball machine. |
|
Being a member of the (apparently) minority who WAS alive and working in the 1970's, I can remember one important point that was missed here. This process took quite a long time; depending on the size of the deck. It has been quite a while since I truly appreciated the speed and efficiency of current compilers and IDE's that permit inline debugging. I, for one, do NOT long for the good old days!! |
|
Now maybe I can add those features to age of empires 3 that I've wanted! I can't wait to compile all my games back to source code.
|
|
Dear God. I was also alive back then, but I was still too young to be programming. And I thank my lucky starts that I missed punch cards; I got started on a TRS-80 a few years later.
|
|
bah. nothing to see here
|
|
Hmm. I was alive back in 1971, and even had access (in the sense that I played around on the floor near) a mainframe. But my dad was a programmer on same. While I don't disbelieve the core of this story, there are a few things wrong with it: - you didn't speed up the 407 by cutting a wire; see http://www.columbia.edu/acis/history/407.html. The machine that you sped up by cutting a wire was an Amdahl -- the V8 IIRC (a late-1970s IBM mainframe (S/370) clone) - the "Development Environment" may have been an autocoder pad and pencil in some shops, but many shops were using interactive terminal environments already. - COBOL was certainly in existence and heavily used, but it was far from the only language as implied. - "eleventy-billion" is wild overstatement. At announce in 1964, the System/360 line was priced for rental from $2,700 for a basic
- the article makes it sound like a compiler was a piece of hardware ("placing an object deck in the compiler..."). That would be a card reader, not a compiler. - It's really unlikely that feeding an object deck to a compiler would slow the machine down like that: more likely the "compile" would go really quickly, generating a ream of errors. - Finally, the story says, "Because this halted all testing and debugging for the day..." -- if it was really a multitasking environment (early VM? MFT?), then some testing and debugging would go on during the week. The only way it makes any sense for testing/debugging to be only on weekends (what about third shift?) is if it was a single task environment (not state-of-the-art even in 1971, though if we're talking about a 407, which was barely a single-task machine...); and in that case, it wouldn't end anything except Albert's run -- you'd be IPLing (think "booting") the next user's program when his/her test window came up. But it's still a good story... ...phsiii captcha: null (Gee, thanks!) |
|
I don't see what all the fuss is about Microsoft not releasing most of their source code. Just compile your Windows directory, and there you go! I guess the Penguin-T-shirt-wearing crowd has been too busy watching Star Trek with their nose buried in the latest unauthorized Star Wars screenplay to catch that little piece of obvious information. Swish! |
Thats the whole point of this, is that he was trying to decompile the object deck...Did you even read it, or did they not have words back in '71? |
Re: De-Compilin' Back In '71
2006-10-06 16:06
•
by
Who wants to know
|
|
Actually, COBOL compilers are generally NOTORIOUS for being REAL bad! They can be, ESPECIALLY earlier, REAL slow! ESPECIALLY when there are lots of errors! They also often REQUIRE a special format and period placement(An improperly indented line or one with the wrong number of spaces before or after a period could cause it to blow up). ALSO, there was often NO concept of a fatal compile error! ALL errors were reported even when some were CLEARLY based on others. Anyway, they were NOT setup to handle VERY long lines and/or control characters! All in all, I could see this sort of garbage causing problems like this. Possibly, even TODAY! Who would be so stupid as to attempt such a thing anyway? As for the cutting a wire thing, my father DID tell me of a SWITCH CLAIMING to do such things, but it did NOTHING! He was an IBM salesperson and system programer and salesperson at the time, and I have heard NOTHING of such wires, though he DID tell me similar stories. Steve |
Haha, I thought the same thing when I first read that. The "point" he was referring to I beleive was the compilation speed. The line about "Compiling the punch cards was also required..." was intended as a direct quote of the original post. |
I think Alex was being quasi-facetious. http://www.urbandictionary.com/define.php?term=Eleventy+Billion It isn't even a real number :) |
Re: De-Compilin' Back In '71
2006-10-06 16:18
•
by
Rageingnonsense
|
|
This is like trying to hash a hash value to get the original value.
|
|
Error checking? Input validation? Who needs that? If you did not know how to use the computer, you were not permitted near it - hence the enclosed glass rooms, and the holy computer tenders wearing white lab coats (never did figure out that one). There was usually a holy window (kind-of like a bank window before the roll-out drawers) through which the unwashed, unclean, non-computer scum would pass their deck of cards (complete with JCL, which again had no input validation) so the anointed holy ones could, at their leisure and whim, submit the deck to the computer, wrap the deck in the holy print-out, and sneak it back out to the ledge where it could be retrieved by the unwashed if they dared. I recall a class (1977 on an IBM/360 DOS/VS machine) where I was supposed to obtain a directory of the disk. The acolytes stopped my printout after 450 pages and called security. It appears that I'd not put a 1 in the directory column of the card, so it was printing a hex dump of the entire disk contents, rather than a directory. Of course, they assumed I was dumping the disk to look for the passwords. (Yes, they were stored as regular text on the hard drive - usually right next to their account number.) Seriously, computers were very complex machines with very limited capacity. I worked in my college's computer center as a student programmer. We were running a PDP-11/50 RSTS/E mini-computer that cost about $250,000 - a lot of money for a small, private college. RSTS/E allowed a maximum of 64K (yes, K - not M or G, K) per user. The machine was maxed out with 256K of main memory. It also had a 80M removable hard drive the size of a washing machine, which was used to run all of the college administration as well as all the computer courses. You learned to write code without comments or spaces because each character in your source code took up a byte in memory. BTW-that was one of the "seeds" for the perl programming language - Larry, et. al. wrote a DBMS and had to have some way to pare it down so your application was compiled with just the functionality it needed to run, so it would fit into memory. It was a real revolution to even think about providing users with meaningful prompts on their ASR-33 teletypes or 24-line CRT terminals. It was not unusual to run a program and be greeted by: ? - which meant the program was waiting for user input. You were supposed to know what it wanted, and enter the correct value - otherwise it wouldn't do anything useful for you. Back then the WTFs were things like having to put EXTEND in every BASIC-PLUS source file if you wanted to use variables that were longer than two characters, or wanted to have more than one statement on a line number. Or trying running an integer across a word boundary. |
Your writing style HURTS to read. |
Re: De-Compilin' Back In '71
2006-10-06 16:31
•
by
DisturbedSaint
|
hmmm. It makes me WONDER if COBOL could handle code WHERE words were RANDOMLY capitalized. -ds |
IN COBOL, ALL WORDS WERE CAPITALIZED, I THINK. |
|
I was in the Air Force from 91-98. We actually used IBM 3033's and 370's for mission critical stuff. We had to IPL (Initial Program Load) the beasts every day or so. It had DASD's (Direct Access Storage Device) with 100 MB of memory. The things were larger than a VW beetle. It also used 9-track tapes to record data, sequentially. If there was a problem, we would have to call the programmers in during the night. Their response was always "Just keep IPLing it until it works"
Nice
|
When I read this, it sounded like William Shatner to me. |
Re: De-Compilin' Back In '71
2006-10-06 16:46
•
by
unlisted_error
|
Yes, everything was in all caps. That was because the computer rooms were really noisy with all the air conditioning equipment, fans, devices, card readers and what-not running. EVERYONE HAD TO SHOUT TO BE HEARD. THEY GOT USED TO THAT AND JUST CODED THAT WAY! -eh?? :)
|
Re: De-Compilin' Back In '71
2006-10-06 16:51
•
by
Bradlegar the Hobbit
|
The more things change, the more they stay the same ... that's how you get Windows going again these days :) |
Yeah, i realize it's not a real number...my point was that a $5.5M machine, even in 1971 dollars, isn't THAT much. Now, memory, at $1/byte, was pretty spendy...but that's why machines had 256K and such. The 360/75 at UofWaterloo had 3MB by 1980: 1MB of real core and 2MB of solid state. I'm fond of taking the 1MB SD card out of my digital camera and thinking about how it probably has more digital storage capacity than *existed* on the planet 40 years ago... |
|
"This is like trying to hash a hash value to get the original value." Yeah, I've know hashes like that... |
|
I've been toying lately with the idea of getting an old textbook on punched-card systems, just so I can immerse myself in obsolescence.
|
|
The main thing I've learned from this story is how much I miss greenbar. I need to get me an old dot matrix wide format printer and a few reams of greenbar. |
|
I think there is something which is vitally important that we are all missing in this discussion. At one point in time there was such a thing as a "Punch Card Girl", and she was required to talk to every programmer that needed access to the computer.
|
|
IBM was the grandaddy of "functional pricing". In the 50s, IBM had two models of line printers, one which printed twice as fast as the other and which leased for exactly twice the monthly cost of the slower model. The slow model was "field upgradable" which meant that an IBM tech would come to your site, open the back and replace a pulley driving a belt with another having a diameter twice as large. Presto! A faster printer. Thus it probably dosn't surprise me that feeding an object deck into an early 70s COBOL compiler might have brought the printer to its knees. It would have been laboriously generating a very, very long error file and printing it out sequentially to a line printer complaining spewing an error message for just about every character in the input deck.
|
|
Hey, it works for rot13!
|
Of course, we didn't say 64K of memory back then. It was 32K words of memory. -- Dave |
|
Unfortunately I'm not quite old enough to have worked with punchcards, but I have worked alongside those who are - so I'll give you the special secret top tip to save hours of rework... When you have your set of punchcards, put them together and draw a diagonal line across their edges - that way when you trip on the way to the card reader and drop them all on the floor, you can put them back together again in the right order!
|
|
Maybe Albert thought the compiler just ran a ROT-13 conversion.
|
LOL. Celebrity Jeopardy ruled. |
Somebody call Mike Rowe, I think we've got an entry for "Dirty Jobs - A Historical Perspective". |
|
No, just give the last listing to the Key Punch Girls to re-key. That what I did when a 2000 card box was droped by a production control droid. They had the whole thing repunched in about an hour.
|
Heh, sounds like Python! |
I'm never without greenbar - keep it in my pocket. http://www.thinkgeek.com/homeoffice/gear/8904
|
No, silly, they were in ALL CAPS to ensure there were no hanging chads on the ballot, I mean punchcard. |
|
I worked at a company that made photoplotters way back in the 90's, and even then we had a jumper that enabled high resolution (around 2000dpi). I asked about why to a sales person, the answer was something like "the competator sells something at half the resolution for 70% of the cost and something with our high resolution for 110% of our cost, so we put the jumper on it so we could compete with both products and still make the highest profit margin". If you twist your mind enough, that makes sense, I guess.. alot of beer helped. Which if you've ever worked in the field, you know that goes hand in hand with talking to sales people.
|
Meh, it's fine. Why make two skus when you can get the job done with one? It's an engineering solution so long as you realize that the task is to get people to pay you as much as possible. So, were you leasing or selling? |
|
Back then, a lot of compilers were N-pass, and each pass took a card deck and produced a new card deck, which you then fed to the next pass. Syntax checking was sometimes a separate pass than the first actual pass, and you could skip it if your deck had already been syntax checked. Daring and/or arrogant programmers would sometimes skip the syntax check for a small change. But if you had any syntax errors and you skipped the syntax check things would blow up spectactularly.
|
|
As someone else already programming professionally in '71, I have to
There certainly were choices for source control in 1971.
Believe it or not, computers back then did
And the card decks were almost
The system described is more like late 50's than 1971. But COBOL wasn't specified until 1961, so that doesn't ring true either. Maybe it wasn't an IBM system? By
|
|
In 1971 I had been in what is now called IT for 10 yrs. I had just finished my post-doc and left physics behind for the world of Cobol - there were no jobs for Physics PhD's.
The 407 was an EAM machine - a mix of mechanical and electrical. You "programmed" it by placing wires into what was called a punch board -- thick plastic framed in metal -- and placing the board in the machine. It was a printer that used one print wheel per print position. It sounded like a heavy metal band. For doing totals it could have attached a "summary punch."
By 1971 PL/1 had been introduced but Fortran was still king of the science world. Algol et al roamed the wild places of academia.
One of the very bad things about 360 object decks was they had much more than the usual amount of holes. After too many uses, they tended to fall apart. A more likely story would be a card reader jam on almost every card.
If by 1971 a shop still used object decks they were a small shop using DOS (now called VSE). It is possible they did not even have a spooler if they had 64k or less memory. So if you try to compile an object deck you could conceivable drive those early compilers (on such a machine iw was called the D or d-level compiler) wild directly printing error messages. They tended to produce way too many error messages. When you got a compile listing with more than 1 error per 10 statements, you fixed obvious erros and tried again.
And as for testing only on weekends, that had to be a shop with less machine capacity than they needed. The standard in those days (60's and early 70's) was one small job (like a compile) per day per programmer when things were hectic. At Oak Ridge National Laboratory after the second machine was delivered around 1968, multiple jobs per day were the standard if you felt like walking to the job input submission area.
Oh yes, you often did your own keypunching.
pup the silverback nerd |
|
From an old USENET list... "I heard this story from someone who worked for a French company, they had a |
|
From westegg.com: What cost $5500000 in 1971 would cost $26164796.88 in 2005.
Sorry, that's definitely eleventy billion dollars. |
Nope. I was an Amdahl SE cross-trained as an FE. V8 was actually called a 470V/8,
Not many. In
True, but my manager would
Tom |
And there still aren't...
I only programmed with punch cards as a kid, although I did later get to do more work with the 370 and 390 mainframes. I'm probably the only guy here who had a job card at seven years old - that was the colored card (ours were green) containing the JCL that identified you to the system so you could run a card deck. Effectively, it said which account to charge for your computer time... so if you could get someone else's, you could run jobs on their dime. Nobody in the lab *ever* let their job card out of sight. Yeah, I started young. Second generation geek. |
| « Prev | Page 1 | Page 2 | Page 3 | Next » |