Hubbry Logo
search
logo
NELIAC
NELIAC
current hub

NELIAC

logo
Community Hub0 Subscribers
Write something...
Be the first to start a discussion here.
Be the first to start a discussion here.
See all
NELIAC

The Navy Electronics Laboratory International ALGOL Compiler (NELIAC) is a dialect and compiler implementation of the programming language ALGOL 58, developed by the Navy Electronics Laboratory (NEL) 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 chairperson of the Association for Computing Machinery (ACM) and a well known computer scientist, and supported by Maurice Halstead, the head of the computing center at NEL. The earliest version was implemented on the prototype AN/USQ-17 computer (called the Countess, after Countess Ada Lovelace) at the laboratory. It was the world's first self-compiling compiler, a trait called bootstrapping. This means that the compiler was first coded in simplified form in assembly language "the bootstrap", and then rewritten in its own language, compiled by this "bootstrap" compiler, and recompiled by itself, making the "bootstrap" obsolete.

It is considered a variant of ALGOL 58 because of similarities to that language, but within two years, the ALGOL committee produced other versions of ALGOL, and NELIAC and ALGOL diverged.

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 computers such as the UNIVAC 1107, 490, and 418, and the IBM 704 and 709. The production version of NELIAC was a second generation system (for the AN/USQ-20, a modernized and militarized version of the AN/USQ-20), compiled by the first version, but including full decoding of algorithmic expressions and, later, an input/output (I/O) system missing on all other versions.

The decompiler was a curiosity. The first version ran on the Countess, but was later ported to the CDC 1604, and to other computers, and received some notice at some universities. However, it turned out that, at that time, there were few programs worth decompiling.

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 compiler architecture which made possible such fast compile times that it compiled 60 to 120 times faster than other high-level programming languages which used multi-pass compilers. The JOVIAL compiler made 14 passes, for example. The simplicity of the language and its rapid 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 by the Royal Canadian Navy to develop software for the Command and Control System 280 (used on the DDH-280 destroyers) in the years 1967 to 1971. The Canadian Navy established a Program Generation Centre in Ottawa, Ontario, Canada for this software development. The host computer was the Litton L304F containing 160 kB of memory. Because of memory constraints, the NELIAC application software was later rewritten in assembler code.

See all
User Avatar
No comments yet.