📜 ⬆️ ⬇️

A person. John Backus - creator of the first high-level programming language

image

October 17, 1977 at the annual conference of the ACM Alan Turing Award was presented to a man who created the first high-level programming language for scientific and technical purposes.

The prize was awarded to John Backus “... for his deep and important contribution to the creation of high-level practical programming systems. In particular, for the work on Fortran and the frequent publication of formal procedures for the specification of programming languages. ”
')
In the 50s of the twentieth century, the work of a programmer in writing, entering and debugging programs was far from easy: at first programs were written in machine language.

To facilitate the fate of programmers, subprograms were invented, and then the first assemblers. But the programming efficiency did not improve significantly. If someone could write a translator that would allow to enter commands from words and symbols, and then automatically convert them into machine code ...

Useless Backus


John Backus was born on December 3, 1924 in Philadelphia. His father was a chief chemical engineer in a nitroglycerin manufacturing company. Backus Sr. began his career as a simple employee, but then he moved up the corporate ladder during the First World War, when, thanks to his technical inventions, a series of explosions at the factories were prevented.

John graduated from high school in Washington, then in the fall of 1942 entered the University of Virginia in the Faculty of Chemistry. The young man did not give any hope in terms of further success. Teachers doubted that he could bring at least some benefit to society. As he later recalled himself, despite the fact that his parents assigned him to a prestigious school, the learning process disgusted him. When Backus went to university, the only lesson he attended once a week was a music lesson.

image

By the end of the second semester, in 1943, the university management decided that the young man’s continued presence in the school was unnecessary: ​​Backus was expelled. At that time, World War II was in full swing, and the United States had already been fighting for a year and a half against the Japanese Empire. Young John Backus with the rank of Corporal was accepted into the friendly ranks of the Pacific Air Defense. However, in the fighting Backus did not participate.

Search yourself


After demobilization, John returned to the United States and settled in New York. He again faced the question of choosing a profession. Nothing but music attracted him. Since he strongly wanted to have good equipment for listening to music, he entered the school of radio engineering: having obtained the necessary skills there, he would be able to independently design musical equipment.

Once one teacher asked John Backus to help him with plotting the frequency characteristics of the amplifier. The calculations were simple, but their abundance was tiring. Unexpectedly, these repetitive mathematical operations interested Backus. A teacher in repairing television and radio equipment aroused his interest in mathematics and persuaded him to continue his education at Columbia University.

In the spring of 1949, a few months before receiving a diploma, 25-year-old John Backus still could not decide on his future. In search of promising work, he was brought to the IBM Computer Center on Madison Avenue. As it turned out, it was a “fateful accident”.

image

After receiving a master's degree in mathematics from Columbia University, at the invitation of Rex Ceber, one of the inventors of the SSEC machine (Selective Sequence Electronic Calculator), Bekus went to work as a programmer at IBM. It happened in 1950.

Ibm


Backus didn't know much about computers when he came to IBM. However, after working on SSEC for about a year, he led a small group of programmers who developed the Speedcoding interpreter for the IBM 701 computer.
Then the word "computer" (computer) meant something quite different from what it means today. Selective Sequence Electronic Calculator (SSEC) was one of the first IBM developments in the new field of electronic computing devices on vacuum tubes. This, so to speak, computer had no memory, and all input and output occurred through punched tapes. So, computers were in some sense the people who "helped" the machines.
In the SSEC project, John Backus was involved in solving the problem of calculating the position of the moon in a 12-hour interval over a 200-year time interval. To calculate each position of the Moon, it was required to make 11 thousand additions and subtractions, 9 thousand multiplications and to perform 2 thousand views of special tables. This task required the hard work of 13,000 huge SSEC vacuum tubes. The various SSEC nodes were located along the three walls of a room measuring 18 by 6 meters, while the programmers were located inside the computer.

image

The calculations performed, including by Backus, at SSEC, by the way, were used in the space navigation by NASA from 1952 to 1971. Later, he had to perform more exotic tasks - for example, calculating the exact orbits of the five outer planets of the solar system in the time interval from 1653 to 2060.

The SSEC is obsolete as early as 1952 and was dismantled.

Fortran


In 1954, IBM launched a new project, the IBM 704. Unlike the tube computer 701, the new project was an electron-magnetic. IBM 704 has provided programmers with a universal set of commands for working, including floating-point numbers.

Implementing floating-point algorithms in assembly language is not easy. At that time, programming was mainly based on only mathematical formulas, and there were no mathematical co-processors. In the end, “lazy” John Backus (he later jokingly, and perhaps not quite jokingly, recalled) began to think more and more about how to create a language independent of the machine architecture and making it easy to program mathematical formulas.

John Backus turned to his boss Cuthbert Hurd with the proposal to develop a practical high-level programming language and compiler for the IBM 704 machine. Backus's proposal was approved.

Fortran was born at IBM's headquarters on Madison Avenue in New York - in the office on the 19th floor, where Backus's group is located. At first, only Irving Ziller worked with Backus, then Harlan Herrick joined with a team of mathematicians and technicians.

Backus gathered a group of nine graduates in mathematics, and they enthusiastically set to work on creating a new language. These nine people later entered the history of programming - Robert Nelson (Robert Nelson), Harlan Herrick (Harlan Herrick), Lewis Hayt (Lois Haibt), Roy Nutt, Irving Ziller, Sheldon Best (Sheldon Best) , David Sayre, Richard Goldberg and Peter Sheridan.
In his memoirs, Backus writes that because of his inherent laziness, he created such a group management system that he, in fact, didn’t have to do anything. The greatest difficulty for him was only the task of how to make the members of the group not spend so much time on games. Programmers from the Backus group during lunch liked to fight chess (although at that time they were not virtual, but real). And no threats helped in the fight against this: before 14:00 they usually did not finish the game.
Since then, some have thought that “real” programmers should spend at least two hours a day on (already computer) games.

The developers did not expect that their programming language would ever be used on machines other than IBM 704, but they were confident that, if successful, their work would significantly affect the IT industry.

They identified the basic concepts of a new language, in particular, an assignment operator (for example, N = 100), which assigned certain values ​​to variables, entered indexable variables that told the computer which element from the list of variables was needed (for example, X (3) means the third element of the list, named X), they proposed a very important DO operator, which allowed repeating the desired sequence of operators a specified number of times.

The text of the program has become simpler, the IF constructs for organizing branching and cycles have appeared. Incredibly simplified programming formulas. For example, the formula D = B ^ 2-4AC, which programming even in modern assembly language would require ten lines of code, was written in the new language as follows: D = B ** 2-4 * A * C.

As Bekus stated, people mistakenly believed that the main contribution of Fortran was the ability to write programs in the form of algebraic formulas, and not in machine language. In his opinion, Fortran first of all automated the organization of cycles. The importance of this task in the development of scientific applications is difficult to overestimate.

Work on the language went quickly, which could not be said about the development of the compiler. Bekus understood that it was not easy to dispel doubts about the possibilities of “automatic” programming, that is, writing programs in high-level languages. Fortran programs must be as fast and reliable as those written in machine codes or in assembly language.

Of the three years spent on developing the project as a whole, work on the compiler took more than two years. If the group made the first report on the creation of a language in 1954, it was only in April 1957 about the development of a compiler.

image
The First Page of the Backran Autographed Backus Manual

Developers for a long time could not decide on the name of the new language. Backus came up with several banal names, but each time they did not suit their colleagues. But one day he proposed FORTRAN (FORmula TRANSlation). The reaction was similar, but this name was accepted due to the lack of a better one.
John Backus, of course, jokes when he says that he did nothing. The laurels of the creator of the first high-level language belong to him by right.

Algol


Another important achievement of Backus was the use of the formal recording method - BNF (Backus - Naur form) to describe the Algol language.

In 1958, John Backus decided to take an active part in the discussion of the new language (he later got the name Algol) in Zurich. However, a problem arose - the English language, in which Backus spoke, was little understood by Swiss programmers. In this regard, special diagrams were developed to describe the language constructions, which Backus developed together with the Danish astronomer and programmer Peter Naur. Since then, the Backus-Naur Form (BNF) has become an Esperanto of world programming. A programmer who is proficient in BNF does not need to study voluminous works with its verbal description in order to learn about the new language: it is enough to study the BNF of this language.

image
BNF syntax charts and parse tree

In February 1959, Backus convinced the influential organization SHARE (which included users of IBM computers) to rely on a new programming language. After that, the organization urged IBM to implement Algol.

In words, the company went to meet its customers, but in fact there was almost no work in this direction. At that time, IBM was the world leader in the computer market and was actively implementing Fortran, which is quite expected. The members of SHARE, in fact, did not have a clear position either. When their enthusiasm faded away, as if nothing had happened, they continued to support Fortran.

And Backus, despite the failure, continued to actively promote Algol.

FP


In the 70s, John Backus, together with John Williams and Edward Wiemers, he developed a new programming language FP.

FP is a so-called pure functional programming language, in which the programmer focuses not on variables and their values, but on “black boxes” - functions that have input and output.



Backus introduced the world to the world in 1977 in an article entitled “Can Programming Be Liberated from the von Neumann style? A "Functional Style and its Algebra of Programs" ("Is it possible to free programming from von Neumann's style? Algebra of programs in a functional style").
FP was conceived more as a mathematical model than as a software development tool. It is a canonical example of a language using a functional paradigm.

In FP, particular attention is paid to the exact semantic description and processing of abstract data types. Together with his staff, Backus developed an optimizing compiler using algebraic transformations.

The ideas used in the FP language were used to create the LISP language.

Memory



image John Backus died on March 17, 2007. He was 82. Despite the fact that at the beginning of the way he did not know what to do with his life, fate took this decision for him.

In addition to the Alan Turing Award, which was mentioned above, John Backus in 1976 was awarded the National Medal for his contribution to science.

“Sometimes the incentive to an invention is not a flight of creative thought and not a necessity, but the desire to rest from tedious and hard work. John Backus is convinced that this is what made him develop a language that largely automates the work of a programmer, ”writes Leslie Goff.

Source: https://habr.com/ru/post/317526/


All Articles