My early years as a scientific programmer

Moving toward the singularity

(C)  4 May 2012 Fernando Caracena


I began programming on the ORDVAC digital computer at Aberdeen Proving Ground, MD in the early 1960s as a soldier, having been drafted into the Army. The computer had the computing power of my digital watch, and consumed more electricity than my neighborhood. At the time, programming involved a lot of hand work.

The programmer first designed the program on paper, of which there was plenty around on the backs of copious printouts. Next, the program was translated into a series of sequential instructions, which were written on coding forms (I just used the plane backs of print out paper). The instruction code was basically binary, but organized for readability into a hexadecimal numbering system (digits: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). The instruction line was simple: take the contents of data at memory address ***** ; operate (e.g. multiply, add, etc.) on it with the contents of memory address #####; and store the results in memory location xxxxx. Coding was tedious, but it beat hand computation, even with an electrical calculator. You had to keep a map of your program (flow chart) on paper to keep track of what without it could become an intractable mess.

Input/ output (IO) was handled through a card and a tape reader/puncher. My program took the form of a stack of punched cards, to which I appended a stack of cards defining subroutines and procedures. The stack went into the computer's card reader, which inputted the contents of the stack into the computer memory (von Neumann's invention). If you dropped the deck (the original segmentation error!), you had a huge jigsaw puzzle on your hands. For that reason, seasoned programmers carried decks that had elaborate artwork and designs on the sides of their decks.

The output and input consumed many trees of the forest in the form of: punch cards, paper tape and bales of printout on over-sized, tractor-feed paper. Most of the input and output was in the form of punched cards. The punched card outputs loaded onto a card reader for the wide bed printers were converted into bales of paper output for humans to read. A bale of tractor feed paper might tell you that you made some stupid coding error in the middle of your program. Note that I rarely deal in hard copy now, preferring to use the screen, thereby saving the forests.

At the time, all this computer stuff was marvelous. The computer itself was a roomful array of old vacuum tube circuitry. Heat was death to the system, and therefore, air conditioning was a must, which was a blessing to us poor unfortunates who lived in the swamp heat of the Chesapeake.

When I left Aberdeen Proving Ground in 1961 (discharged from the Army), a new computer BRLSC was installed, which featured a great improvement over hand coding, assembly language.

Beyond history

In the series of blog entries that follow, I hope to discuss a variety of programming languages, and perhaps look into the crystal ball to give a reading of the future of that activity.


This entry was posted in Uncategorized. Bookmark the permalink.

One Response to My early years as a scientific programmer

Leave a Reply

Your email address will not be published. Required fields are marked *