LowEndBox - Cheap VPS, Hosting and Dedicated Server Deals

Flashback in the Mail: a Gift From 1976

Tags: , , , , , , Date/Time: March 16, 2022 @ 12:00 am, by raindog308

FORTRANRecently I purchased a copy of the hoary old tome you see pictured to the right on Amazon: “A Guide to FORTRAN IV Programming” by Daniel D. McCraken, 2nd edition, 1967.

For those who have never heard of this ancient language, FORTRAN is one of the original third generation languages.  The first generation was true machine language – invoking different CPU instructions through numbered primitives.  Next generation was assembly language, which allowed you to use human words like “ADD” and “JMP” (jump).  In the early 50s, a wave of third generation languages came along with languages such as FORTRAN, ALGOL, LISP, FLOW-MATIC, and (in 1959) COBOL.  These languages allowed humans to write in much higher conceptual terms and leave the low-level work of handling registers, memory, CPU instructions, etc. to machine-produced code.

Initially, the scientific community was very skeptical that their hand-coded assembler could be matched, much less outperformed, by such an absurdly impossible thing as an “optimizing compiler”.  If those beancounters in accounting want to run payroll using one of these fancy languages, fine, who cares if it runs all night.  But for our important scientific work, clearly we need hand-optimized code.

IBM nodded and said that assembler would still be available and everyone is free to work as he wishes, but for those who want to try it, we present FORTRAN (the FORmula TRANslator).  Those who tried FORTRAN experienced a 20:1 reduction in the amount of code they needed to write.  In an era when typically one would be lucky to submit two compute jobs in a single day, the ability to submit jobs with 20x the complexity of other jobs meant that these scientists’ work rocketed to prominence and very soon the scientific community fell in love with FORTRAN.

FORTRAN subsequently influenced other languages.  BASIC, for example, is a descendent of FORTRAN II.

FORTRAN emerged from a punch-card world, but I was still regularly encountering it when I worked in aerospace around the turn of the millennium.  So many scientific and compute libraries have been created and thoroughly tested in FORTRAN that it’s often easier to bolt a FORTRAN compiler onto your product and use the available high-quality code than to write and test something yourself.  And of course, the FORTRAN of the 21st century is not the FORTRAN of the 1950s.  The language today supports modern programming concepts such as object-oriented programming.

However, I like to play with 1970s technology and though I should learn a little about FORTRAN.  To my delight, when I opened the book, a print-out from 1976 fluttered to the ground.

FORTRAN Print Out

This is on 11×17 printer paper (there’s another column of punches off to the right) and it’s ruled on the other side (not greenbar – just green lines).

No idea what the first line means but the second looks like mainframe-ish job info.  A job called “hello” charged to an account and an identifier, or something like that.

Line 5 refers to an HP32000C.  I’m guessing this is part of the HP3000.  That was a line of HP minicomputers in the 1970s that was supported as late as 2010 by the company (and is still supported by third-party firms).  This manual from August 1975 mentions an “HP32101A” BASIC compiler, and that was for the 3000 series.

The program is very simple and you don’t need to be a BASIC guru to understand it.  Not sure what “FOR X RESUME” was supposed to do and I guess the compiler wasn’t either (“ERROR@6”).  The rest is a simple loop, and then the output is printed.

This is 16-bit computing, so at most you’re addressing 64K, but as I read about this, I think you could effectively use 24-bit addresses (16MB), which would not have been atypical for the time.

Note the bottom: executing this job took 10 seconds.  I’m guessing that’s rounded up, and presumably includes compiling, linking, and executing.  I’m thinking this was entered at a terminal, hence the “BYE” (oops) and then “EXIT”.

1 Comment

  1. Marvelous and awestruck to see a computer printout 50 years old. How and why did it take 10 seconds though. Thanks for the post.

    March 18, 2022 @ 9:52 am | Reply

Leave a Reply

Some notes on commenting on LowEndBox:

  • Do not use LowEndBox for support issues. Go to your hosting provider and issue a ticket there. Coming here saying "my VPS is down, what do I do?!" will only have your comments removed.
  • Akismet is used for spam detection. Some comments may be held temporarily for manual approval.
  • Use <pre>...</pre> to quote the output from your terminal/console, or consider using a pastebin service.

Your email address will not be published.