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.
NELIAC was the brainchild of Harry Huskey — 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 afterwards the ALGOL committee produced other versions of ALGOL, and NELIAC and ALGOL parted ways.
The compiler was used on the Countess to produce a version for the CDC 1604, 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. However, 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 databases, free form queries with a precursor of IBM's GIS, and reporting applications. NECPA and NELOS went to sea in 1966.
However, 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. Also, its looping statement was unusually strict in that the index variable had to hit the end value exactly, or else an infinite loop would occur. These were the "Achilles' heels" of NELIAC.
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.
- "Neliac - A Dialect of Algol", H.D. Huskey et al., CACM 3(8):463-468 (Aug 1960).
- "Machine Independent Computer Programming" Maurice Halstead
- A syntactic description of BC NELIAC at the ACM.
- Original documents about NELIAC and background information. (archived 2007)
- History of NELIAC through 1991.
- Documentation on bitsavers.org web-site(in English)