1. Money

Discuss in my forum

Part Two: FORTRAN The Early “Turning Point”

Explanation of a programming language compiler

From Steve Lohr

FORTRAN

Go To - By Steve Lohr

Reprinted with Permission by Basic Books, A Member of the Perseus Books Group -- Copyright © 2002
In computer science, a big part of the challenge is capturing a human problem in a way that can be worked on by the machine. The way Backus chose to break up the compiler problem, though subtle, was one of the genuine achievements of FORTRAN – and, like so many innovations, it is obvious only in hindsight. Look into most language compilers today, and one sees the same steps or phases that were in the FORTRAN compiler of the 1950s – the same problem-tackling structure Backus adopted.

The FORTRAN compiler – and the work by the team – was divided by operational tasks. The compiler first performed an initial scan, or parsing, of the higher-level language, the algebraic symbols, and English abbreviations. Next, it performed a complex analysis of the program so that the compiler focused most of its energies on automating the working heart of the program – that is, the most frequently repeated operations in the program. Then, the compiler had to figure out how to allocate its compiling instructions to run on the machine in a way that used a minimum of computer time. And, in the last step, the compiled program had to be “assembled” into machine code.

The FORTRAN compiler accomplished all this not with brute force, but with an elegant efficiency that seemed to lend the software a certain life of its own, if not intelligence. By early 1957, when the FORTRAN project was in the home stretch and the team got compiled programs back from the computer, they were often amazed. The compiler had made what Backus called “surprising transformations” in the programs being compiled, altering the programming expressions and the order of computation. As they combed through the changes the compiler had made, they could see that the compiler’s work was efficient. But, Backus said, the compiler took steps that “we would not have thought to make as programmers ourselves.” In fact, the FORTRAN team was mainly observing the work of a well-designed, complex piece of software, following general rules and specific instructions embodied in the programmers’ algorithms to accomplish its appointed task. Still, seeing the FORTRAN compiler’s handiwork struck members of the team as a revelation that software was a special medium. “It was just amazing, the interaction of the programming instructions, almost as if the compiler was a living thing,” Ziller recalled.

It is often said that the best software designers and the best programmers have an uncommon capacity for two different kinds of reasoning – conceptual and procedural thinking, high-level and low-level work. FORTRAN had both, in large doses. The language itself was a high-level, conceptual triumph. It not only made it far easier for people to program, but ensured FORTRAN’s longevity. Though initially intended only for the IBM 704, FORTRAN was wisely designed, at a high enough level, so that it divorced itself from a specific machine environment. “The underlying machine could change to its heart’s content and the programming language could sail along for 50 years,” observed David Sayre.

Next Page > Part Three of FORTRAN The Turning Point

©2013 About.com. All rights reserved.