tags:

views:

529

answers:

5

This is in reference to Stack Overflow Podcast #65. Assume a typical 60's or 70's server computer with, say, 256k main memory. How large (compiled) COBOL programs could such a machine run at maximum? How severely would this limit the complexity and capabilities of COBOL programs, assuming that the programs are not deliberately made more complex than necessary?

+1  A: 

Erm, about 262,400 characters worth..!

Sean
Eh, yeah. I mean _compiled_ code. Clarified the question.
Ville Laurikari
+2  A: 

How would you like to measure this? I remember one program that I'm pretty sure we ran in a 256k or 512k system that was about two inches thick when printed out. We didn't have to use overlays, either.

John Saunders
How many lines per page, and how many characters per line? Precision is important with this sort of question, after all!
Novelocrat
Measuring the size of programs in a meaningful way is tricky. Maybe average bytes of machine code per line of COBOL code? A semi-useless metric maybe, but better than nothing.
Ville Laurikari
That was about 50 lines per page, 132-about 10 characters per line.
John Saunders
@Ville: it would be a totally useless metric, since it was never kept. I have no idea what values of that metric we would have had.
John Saunders
I should mention that this was on DECsystem-10 and DECsystem-20 machines, so 256k would have been 256k 36-bit words.
John Saunders
+5  A: 

Fairly large cobol programs can run in 256K ram in a 70's mainframe. (256K of memory in an IBM 370 was 256K 32-bit words, not bytes.) IBM introduced Virtual Memory around 1970. This paged the program and data to disk, allowing a program to use most of the 24-bit address space, with limitations. Just like Windows!

xpda
+9  A: 

IBM mainframe operating systems supported virtual storage back then - although you could buy a condo on the beach today for what the yearly IBM lease was! I don't remember any insurmountable program size issues.

One thing to consider is that back then almost everything was run in "batch programming" mode. This limited how complex any one program needed to be. One program would pre-process the data and store it on disk. The next might sort it and add some calculated result. Then next might update a database. Then the last one in the batch might print out a report. So complexity (and size) was broken up over several programs running in sequence.

Duck
IBM does (and did, going back in the 1980s) support interactive programming on mainframes via their VM/CMS operating systems. This OS combo also supported one of the best scripting languages ever invented - REXX.
anon
+1  A: 

I was an administrator of a Unisys System 1100 that had 1MB of main storage. We supported about 150 users of a fairly complex munitions inventory system. The application was written COBOL.

Jim Blizard