IBM®
Skip to main content
    Country/region [change]    Terms of use
 
 
 
    Home    Products    Services & solutions    Support & downloads    My account    

IBM Technical Journals

Special report: Celebrating 50 years of the IBM Journals
All topics > Software >

The history of language processor technology at IBM

Award plaque by F. E. Allen

The history of language processor technology in IBM is described in this paper. Most of the paper is devoted to compiler technology; interpreters, assemblers, and macro systems are discussed briefly. The emphasis is on scientific contributions and technological advances from a historical perspective. The synergistic relationship between theory and practice is a subtheme.

Originally published:

IBM Journal of Research and Development, Volume 25, Issue 5, pp. 535-548 (1981).

Significance:

The paper presents an IBM perspective on the evolution of the language processor technology from the early 1950s to the late 1970s. Allen divides these years into five periods: (1) the early history, from the introduction of the IBM 701 in 1952 until the release of FORTRAN I in 1954, (2) the FORTRAN I period in the mid-50s, (3) the late '50s and early '60s, from the introduction of the IBM 709 in 1957 until the announcement of System 360 in 1964, (4) the System/360 period in the mid- and late-'60s, and (5) the 1970s, the “approaching maturity” period.

The early period is marked by use of subroutine libraries and early “compilers” that processed pseudo-code written by the programmer and extracted and manipulated library routines into a complete program. It is also marked by the first symbolic assembly programs, which supported relative addresses from an origin and extensive error checking to cope with hardware errors. The earliest higher-level language processor was Speedcode, developed in 1953 for the IBM 701 and supported by the interpreted Speedcoding calculator.

The goal of the FORTRAN I project, to provide an automatic programming system (compiler) that would produce programs almost as efficient as hand-coded ones, was met to an astonishing degree. The FORTRAN I compiler established the structure and the techniques of modern compilers. Its major components include a statement identifier and arithmetic statement translator, a subscript and DO statement analyzer, a control flow analyzer, and a global register allocator. The work represents a major milestone in the development of computer technology.

Allen views the late 1950s and early 1960s as a period of “great optimism and little discipline,” in which there was a flood of new languages, computers, programming systems, and ideas. The Comtran (Commercial Translator) language and compiler were developed (Comtran was later supplanted by COBOL), and the Quiktran time-sharing system was released. The proliferation of languages and computers led to work on universal compiling systems, such as XTRAN and SLANG. The early work in the theory of parsing forms the basis for modern lexical and syntax analyzers. John Backus introduced the syntactic notation for specifying grammars known as BNF and John Cocke invented a parsing method based on the dynamic programming paradigm, the first algorithm to uniformly run in polynomial time.

System/360, announced in 1964, included families of upward-compatible language processors for FORTRAN, COBOL, and the new PL/I language. FORTRAN H generalized and extended the optimization techniques of earlier FORTRAN compilers, which resulted in excellent object code efficiency. The interpretive APL system disproved the claim that interpreting code is often an order of magnitude slower than direct execution. It showed that efficiencies afforded by array operations allow APL programs to run faster than compiled code.

According to Allen, increasing maturity is the hallmark of computer science and technology in the 1970s. For numerous problems the first solution was a heuristic one, which then led to the formal study of the problem, and then to a solution based on the new theory. Programming became more disciplined and formal methods for describing and verifying concepts were extensively investigated. In particular, such discipline is exemplified by the important fields of parsing and program analysis and optimization.

As a major contributor to language processor technology, Allen is eminently qualified to lead us through its major milestones and interpret the historical events for us. The paper leaves no doubt that the seminal contributions made by IBM to language processor technology has deeply affected the computer technology landscape.

Comments:


    About IBMPrivacyContact