beanz Magazine

Fortran

crabchick on Flickr

One of two key programming languages (Lisp is the other), FORTRAN defined many of the key ideas used in programming languages.

So which is more important, computer hardware or software? Did you know hardware and software used to be the same? People customized software to work with one kind of computer hardware. Today that sounds crazy. Microsoft Office, for example, works on all kinds of computer hardware, from desktops to laptops to tablets. Office works on hardware running Mac OS X and Windows operating systems, even different versions of Windows.

In the 1950s, however, hardware determined what software did. If you coded software for IBM, for example, you tweaked your software to manage the allocation of memory and other hardware details. Different computers required different custom software.

FORTRAN provided the first programming language with a complete compiler, the software needed to translate a high level language humans could use to write software easily into assembly language or machine code computers could understand.

Until the early 1990s, Fortran also was called FORTRAN, all capital letters. The name came from FORmula TRANslation. It was developed at IBM and shipped with their IBM 704 line of computers in 1957. John Backus led the development team, starting in 1954 when he was 29 years old. They required several years to create what we know as modern software. If the Lisp programming language is perhaps the more creative, minimalist software language that led to Clojure and other modern variants, FORTRAN is the ancestor of modern software built and engineered thoroughly with all the bells and whistles. For example, the C languages and many others can trace back to concepts and methods of working first created by FORTRAN.

John Backus, the IBM project leader, also did not have the typical computer scientist background. He reportedly did not study very hard. For example, he studied chemical engineering then quit to join the US Army in World War II. He studied to become a medical professional but left his studies incomplete. A move to New York City led to work as a radio technician then Columbia College where he received a Masters degree in mathematics. A friend suggested he talk to IBM who hired him in the early 1950s.

What makes Fortran Special?

Fortran is the first software programming language designed to be independent from computer hardware. Your code was compiled into what used to be called software, a set of instructions to run on a specific mainframe. But you the coder did not have to worry about these details. With Fortran, you could focus on solving the math or science problem your software had to solve.

While FORTRAN did not invent compiler software (Grace Hopper and others got there first) to translate high level programming languages to machine code, FORTRAN was the first systematic use of a compiler as part of a high level programming language. It made life much easier for programmers, expanded the realm of what software could do, and created a number of concepts still in use today in many programming languages.

Aside from hardware independence, one key problem FORTRAN solved is precedence. Imagine this calculation:

5 + 3 x (6 x 3)

There is a natural order to solve this equation which humans agree upon. You do the multiplication (6 x 3) first. But how do you teach software the correct order of calculation? Backus and his team created FORTRAN to translate these formulas, in the correct calculation order.

This is one of the many problems FORTRAN solved. Other inventions included commented code, DO statements, subroutines, and formatted input and output.

However, the primary benefit of FORTRAN was speed. The software development process took less time with FORTRAN, in large part because programmers could write software to work on different computer hardware. FORTRAN, the initial version of the language, ran 20% slower than custom software but that was enough to not matter, especially as computer hardware speed increased.

How is Fortran Used?

Fortran is still used today in scientific and research projects, for example, weather calculations, computational fluid dynamics, and computational physics and chemistry. You can still learn the language in many college computer science programs. And the language has evolved through a number of specifications, with its key ideas adopted by C, C++, and other languages. There’s also an object oriented version and a concurrent version of Fortran, which reflect two ways to solve modern computing problems.

Fortran also is still a comparatively easy language to learn. Learning Fortran helps programmers connect to the past history of computing and software programming. For example, it is one thing to learn DO statements in a modern language, another to learn FORTRAN where the concept first appeared. The latter provides depth of knowledge plus a bit of fun.

Learn More

Fortran (Wikipedia)

http://en.wikipedia.org/wiki/Fortran

The FORTRAN Programming Language

http://groups.engin.umd.umich.edu/CIS/course.des/cis400/fortran/fortran.html

John W. Backus

http://www-03.ibm.com/ibm/history/exhibits/builders/builders_backus.html
http://en.wikipedia.org/wiki/John_Backus

FORTRAN Tutorials

http://folk.uio.no/hpl/scripting/doc/f77/tutorial/
http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/fortran.html
https://www.tacc.utexas.edu/documents/13601/162125/fortran_class.pdf
http://exodus.physics.ucla.edu/Fortran95/PSTIResearchLecSeries1.html
http://www.ucs.cam.ac.uk/docs/course-notes/unix-courses/Fortran
http://people.ds.cam.ac.uk/nmm1/Fortran/index.html
http://www.nsc.liu.se/~boein/f77to90/f77to90.html
http://nf.nci.org.au/training/FortranBasic/
http://nf.nci.org.au/training/FortranAdvanced/
https://www.youtube.com/watch?v=JGPj5cTGd58 (Windows)
https://www.youtube.com/watch?v=OK6GSvpGZfk (Linux)

FORTRAN/Fortran Compilers

http://www.personal.psu.edu/hdk/fortran.html
https://www.fortran.com/compilers.html
http://www.silverfrost.com/11/ftn95/ftn95_fortran_95_for_windows.aspx
http://www.silverfrost.com/23/ftn95/ftn95_documentation.aspx
http://hpc.sourceforge.net/ (Mac)

Also In The May 2014 Issue

Computer Science Unplugged

The Computer Science Unplugged movement introduces non-technical people to computer hardware and software concepts that drive the technologies we use.

What is Computational Thinking?

While computers think in rigid predictable patterns, learning computational thinking helps us understand how and why computers work.

CAPTCHA

We've all used Captchas and found some impossible to solve. Here's why they exist, how they work, and less frustrating alternatives.

Data Types

Programming languages use data types to allocate memory and enforce data integrity. They also reveal the nature of a language.

Lauren Ipsum

If the idea of a computer science book without computers upsets you, please close your eyes until you've finished reading.

The Turing Test

The Turing Test, and its creator Alan Turing, have had a profound effect on computer science and artificial intelligence.

If debugging is the process of removing software bugs, then programming must be the process of putting them in.

May 2014 Learn More Links

Links from the bottom of all the May 2014 articles, collected in one place for you to print, share, or bookmark.

Fortran

One of two key programming languages (Lisp is the other), FORTRAN defined many of the key ideas used in programming languages.

May 2014 News Wire

Interesting stories about computer science, software programming, and technology for the month of April 2014.

How to Create (and Crack) Secret Codes and Ciphers

Secret codes, or ciphers, are a great way to teach computational thinking.

Grace Hopper

One of the first female programmers, Grace Hopper also worked as a mathematician and had an unusual career for women in the 1900s.

BOGONs

Bogons are not an evil race of aliens. But they do shine a light on one part of the internet little known outside of a few security technologists.