# FORTRAN

FORTRAN (Formula Translation) was one of the first higher languages developed. It was developed for use by scientists to be able to write a formula on a single line. The language was developed in the 1950s and was used heavily through the 1970s. The FORTRAN Company is currently one of the key maintainers of the language. There are many legacy programs that are vital to government and industry that are being maintained in FORTRAN. It is the second language I learned. The first, ALWAC IIIe was very similar to FORTRAN, but used a paper tape for input instead of punch cards. Punch cards were the most common form of input for programs in early computing. It was not until the 1970s that terminals truly started replacing punch cards for input. I found the best source for the history of punch cards on TechTarget. The following picture of a FORTRAN punch card was taken from their site.

This is a typical punch card used for FORTRAN programming

The use of the columns was:

FORTRAN Card Column Usage
Columns Purpose
0-5 label for a statement, usually used for goto labels and usually numbers.
6 Continuation column, if anything is punched in this column, the information on this card is treated as a continuation of the previous card.
7-72 Actual FORTRAN code, where formulas were written
73-80 Administrative columns, I used it to number the cards on large programs to provide a way to sort the cards in case the deck was dropped.

In the 1950s until the 1970s, most FORTRAN programs were written using punch cards. My two biggest programs were a high school registration system for George Washington High School in Guam and a Vietnamese Refugee Locator System for the Red Cross.

Fortunately, most punch carding has faded away and FORTRAN is treated like another language in different Software Development Environments. Comparing assembler and FORTRAN, each element of a formula has to be on its own line in assembler. In FORTRAN, the entire formula can be on one “line.” The caveat is that if it cannot fit in columns 7-72, then it can be continued on the next card if column 6 of the second card is marked as a continuation card. The assembler code would be:

```MOV 6,EAX
```ianswr = (6+15) * 7        ! where ianswr is an integer variable