NELIAC
Encyclopedia
The Navy Electronics Laboratory International ALGOL Compiler or NELIAC is a dialect
and compiler
implementation of the ALGOL 58
programming language
developed by the Naval Electronics Laboratory
in 1958.
It was designed for numeric and logical computations and was the first language to provide a bootstrap
implementation.
— then Chairman of the ACM
and a well known computer scientist
, and supported by Maury Halstead, the head of the computational center at NEL. The earliest version was implemented on the prototype USQ-17
computer (called the Countess) at the laboratory. It was the world's first self-compiling compiler. This means that the compiler was first coded in simplified form in assembly language "the bootstrap", and then re-written in its own language, compiled by this "bootstrap" compiler, and re-compiled by itself, making the "bootstrap" obsolete.
It is called a variant of ALGOL 58 because of similarities to that language, but, shortly after the ALGOL committee produced other versions of ALGOL, and NELIAC and ALGOL parted ways.
, and later self-compiled on that machine. Many other versions were produced for commercial computer products like the UNIVAC
1107, UNIVAC 490 and UNIVAC 418 including versions for IBM
704 and 709. The production version of NELIAC was a second generation system (for the USQ-20, a modernized and militarized version of the USQ-17), compiled by the first version, but including full decoding of algorithmic expressions and, later, an input-output system missing on all other versions.
The decompiler was a curiosity. The first version ran on the Countess, but it was later ported to the CDC 1604 and to other computers and received some notice in University circles. But, it turned out that there were few programs worthy of decompilation available at the time.
NELIAC was never intended to be a commercial product. Its primary advantage over other compilers of the day was its portability to other computers and its one-pass architecture which made possible such rapid compile times that it compiled 60 to 120 times faster than other high level languages. The JOVIAL compiler had 14 passes, for example. The simplicity of the language and its extremely fast compile times permitted much faster development cycles than other contemporaneous compilers. It was an in-house NEL effort to make possible a more cost-effective solution to the problem of computer system development.
NELIAC was used to implement an experimental anti-submarine shipboard system, and was also used for the development of the National Emergency Command Post Afloat
(NECPA) project which developed a strategic command and control system installed on aircraft carriers and cruisers. Perhaps the most successful NELIAC application was control of the U.S. Navy automated High Frequency Direction Finding network (Classic Bullseye) which went into production in 1968 and lasted until the early 1990s.
In addition, NEL developed NELOS, a batch operating system which provided input-output for magnetic tapes, printers, and telecom equipment, provided sequenced compiling of jobs, and a symbol library permitting linking of very large computer applications and executing them on-line. These included suites of information management programs, including database
s, free form queries with a precursor of IBM's GIS, and reporting applications. NECPA and NELOS went to sea in 1966.
Many other well-known computer experts like Niklaus Wirth
made contributions to the project, but ultimately NELIAC fell out of favor after the Navy Department standardized on compilers with commercial support.
Programming language dialect
A dialect of a programming language is a variation or extension of the language that does not change its intrinsic nature. With languages such as Scheme and Forth, standards may be considered insufficient, inadequate or even illegitimate by implementors, so often they will deviate from the...
and compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...
implementation of the ALGOL 58
ALGOL 58
ALGOL 58, originally known as IAL, is one of the family of ALGOL computer programming languages. It was an early compromise design soon superseded by ALGOL 60...
programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
developed by the Naval Electronics Laboratory
Naval Electronics Laboratory
The U.S. Navy Electronics Laboratory was created in 1945, with the consolidation of the Navy Radio and Sound Lab and its wartime partner, the University of California Division of War Research...
in 1958.
It was designed for numeric and logical computations and was the first language to provide a bootstrap
Bootstrapping (compilers)
In computer science, bootstrapping is the process of writing a compiler in the target programming language which it is intended to compile...
implementation.
Origin
NELIAC was the brainchild of Harry HuskeyHarry Huskey
Harry Douglas Huskey is an American computer designer pioneer.Huskey was born in the Smoky Mountains region of North Carolina and grew up in Idaho. He gained his Master's and then his PhD in 1943 from the Ohio State University on Contributions to the Problem of Geocze...
— then Chairman of the ACM
Association for Computing Machinery
The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...
and a well known computer scientist
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
, and supported by Maury Halstead, the head of the computational center at NEL. The earliest version was implemented on the prototype USQ-17
AN/USQ-17
The AN/USQ-17 or Naval Tactical Data System computer referred to in Sperry Rand documents as the Univac M-460, was Seymour Cray's last design for UNIVAC...
computer (called the Countess) at the laboratory. It was the world's first self-compiling compiler. This means that the compiler was first coded in simplified form in assembly language "the bootstrap", and then re-written in its own language, compiled by this "bootstrap" compiler, and re-compiled by itself, making the "bootstrap" obsolete.
It is called a variant of ALGOL 58 because of similarities to that language, but, shortly after the ALGOL committee produced other versions of ALGOL, and NELIAC and ALGOL parted ways.
Use
The compiler was used on the Countess to produce a version for the CDC 1604CDC 1604
The CDC 1604 was a 48-bit computer designed and manufactured by Seymour Cray and his team at the Control Data Corporation. The 1604 is known as the first commercially successful transistorized computer. Legend has it that the 1604 designation was chosen by adding CDC's first street address to...
, and later self-compiled on that machine. Many other versions were produced for commercial computer products like the UNIVAC
UNIVAC
UNIVAC is the name of a business unit and division of the Remington Rand company formed by the 1950 purchase of the Eckert-Mauchly Computer Corporation, founded four years earlier by ENIAC inventors J. Presper Eckert and John Mauchly, and the associated line of computers which continues to this day...
1107, UNIVAC 490 and UNIVAC 418 including versions for IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
704 and 709. The production version of NELIAC was a second generation system (for the USQ-20, a modernized and militarized version of the USQ-17), compiled by the first version, but including full decoding of algorithmic expressions and, later, an input-output system missing on all other versions.
The decompiler was a curiosity. The first version ran on the Countess, but it was later ported to the CDC 1604 and to other computers and received some notice in University circles. But, it turned out that there were few programs worthy of decompilation available at the time.
NELIAC was never intended to be a commercial product. Its primary advantage over other compilers of the day was its portability to other computers and its one-pass architecture which made possible such rapid compile times that it compiled 60 to 120 times faster than other high level languages. The JOVIAL compiler had 14 passes, for example. The simplicity of the language and its extremely fast compile times permitted much faster development cycles than other contemporaneous compilers. It was an in-house NEL effort to make possible a more cost-effective solution to the problem of computer system development.
NELIAC was used to implement an experimental anti-submarine shipboard system, and was also used for the development of the National Emergency Command Post Afloat
National Emergency Command Post Afloat
The National Emergency Command Post Afloat was part of the United States government's continuity of government plans during the 1960s. It was one third of a triad composing of airborne, ground and sea-based assets.-History:...
(NECPA) project which developed a strategic command and control system installed on aircraft carriers and cruisers. Perhaps the most successful NELIAC application was control of the U.S. Navy automated High Frequency Direction Finding network (Classic Bullseye) which went into production in 1968 and lasted until the early 1990s.
In addition, NEL developed NELOS, a batch operating system which provided input-output for magnetic tapes, printers, and telecom equipment, provided sequenced compiling of jobs, and a symbol library permitting linking of very large computer applications and executing them on-line. These included suites of information management programs, including database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...
s, free form queries with a precursor of IBM's GIS, and reporting applications. NECPA and NELOS went to sea in 1966.
NELIAC's end
But, NELIAC programs were not so portable because the language permitted manipulation of binary characters which were dependent on word lengths. In addition the NELIAC language had no input-output schemes. These were the "Achilles heels" of NELIAC.Many other well-known computer experts like Niklaus Wirth
Niklaus Wirth
Niklaus Emil Wirth is a Swiss computer scientist, best known for designing several programming languages, including Pascal, and for pioneering several classic topics in software engineering. In 1984 he won the Turing Award for developing a sequence of innovative computer languages.-Biography:Wirth...
made contributions to the project, but ultimately NELIAC fell out of favor after the Navy Department standardized on compilers with commercial support.
External links
- A syntactic description of BC NELIAC at the ACMAssociation for Computing MachineryThe Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...
. - Original documents about NELIAC and background information. (archived 2007)
- History of NELIAC through 1991.