HOME

TheInfoList



OR:

The Navy Electronics Laboratory International ALGOL Compiler (NELIAC) is a
dialect The term dialect (from Latin , , from the Ancient Greek word , 'discourse', from , 'through' and , 'I speak') can refer to either of two distinctly different types of Linguistics, linguistic phenomena: One usage refers to a variety (linguisti ...
and
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
implementation of the
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
ALGOL 58 ALGOL 58, originally named IAL, is one of the family of ALGOL computer programming languages. It was an early compromise design soon superseded by ALGOL 60. According to John Backus The Zurich ACM-GAMM Conference had two principal motives in pro ...
, developed by the
Navy Electronics Laboratory The U.S. Navy Electronics Laboratory (''NEL'') was created in 1945, with consolidation of the naval radio station, radar operators training school, and radio security activity of the Navy Radio and Sound Lab (NRSL) and its wartime partner, the U ...
(NEL) in 1958. It was designed for numeric and logical computations and was the first language to provide a bootstrap implementation.


Origin

NELIAC was the brainchild of
Harry Huskey Harry Douglas Huskey (January 19, 1916 – April 9, 2017) was an American computer design pioneer. Early life and career Huskey was born in Whittier, in the Smoky Mountains region of North Carolina and grew up in Idaho. He received his bache ...
, then chairperson of the
Association for Computing Machinery The Association for Computing Machinery (ACM) is a US-based international learned society for computing. It was founded in 1947 and is the world's largest scientific and educational computing society. The ACM is a non-profit professional member ...
(ACM) and a well known
computer scientist A computer scientist is a person who is trained in the academic study of computer science. Computer scientists typically work on the theoretical side of computation, as opposed to the hardware side on which computer engineers mainly focus (al ...
, and supported by Maury Halstead, the head of the computing center at NEL. The earliest version was implemented on the prototype
AN/USQ-17 The AN/USQ-17 or Naval Tactical Data System (NTDS) computer referred to in Sperry Rand documents as the Univac M-460, was Seymour Cray's last design for UNIVAC. UNIVAC later released a commercial version, the UNIVAC 490 and that system was later u ...
computer (called ''the Countess'', after Countess
Ada Lovelace Augusta Ada King, Countess of Lovelace (''née'' Byron; 10 December 1815 – 27 November 1852) was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the A ...
) 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 In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
"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 ALGOL 58, originally named IAL, is one of the family of ALGOL computer programming languages. It was an early compromise design soon superseded by ALGOL 60. According to John Backus The Zurich ACM-GAMM Conference had two principal motives in pro ...
because of similarities to that language, but within two years, the ALGOL committee produced other versions of ALGOL, and NELIAC and ALGOL diverged.


Use

The compiler was used on the Countess to produce a version for the
CDC 1604 The CDC 1604 was a 48-bit computer designed and manufactured by Seymour Cray and his team at the Control Data Corporation (CDC). The 1604 is known as one of the first commercially successful transistorized computers. (The IBM 7090 was delivered e ...
, and later self-compiled on that machine. Many other versions were produced for commercial computers such as the
UNIVAC UNIVAC (Universal Automatic Computer) was a line of electronic digital stored-program computers starting with the products of the Eckert–Mauchly Computer Corporation. Later the name was applied to a division of the Remington Rand company an ...
1107 Year 1107 ( MCVII) was a common year starting on Tuesday (link will display the full calendar) of the Julian calendar. Events By place Scotland * January 8 – King Edgar (the Valiant) dies at Edinburgh Castle after a 9-year reign ...
, 490, and
418 __NOTOC__ Year 418 ( CDXVIII) was a common year starting on Tuesday (link will display the full calendar) of the Julian calendar. At the time, it was known as the Year of the Consulship of Honorius and Theodosius (or, less frequently, year 11 ...
, and the IBM
704 __NOTOC__ Year 704 ( DCCIV) was a leap year starting on Tuesday (link will display the full calendar) of the Julian calendar. The denomination 704 for this year has been used since the early medieval period, when the Anno Domini calendar era be ...
and
709 __NOTOC__ Year 709 ( DCCIX) was a common year starting on Tuesday (link will display the full calendar) of the Julian calendar. The denomination 709 for this year has been used since the early medieval period, when the Anno Domini calendar era ...
. The production version of NELIAC was a second generation system (for the
AN/USQ-20 The AN/USQ-20, or CP-642 or Naval Tactical Data System (NTDS), was designed as a more reliable replacement for the Seymour Cray-designed AN/USQ-17 with the same instruction set. The first batch of 17 computers were delivered to the Navy sta ...
, 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 In computing, input/output (I/O, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system. Inputs are the signals ...
(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 In computer programming, a one-pass compiler is a compiler that passes through the parts of each compilation unit only once, immediately translating each part into its final machine code. This is in contrast to a multi-pass compiler which convert ...
architecture which made possible such fast compile times that it compiled 60 to 120 times faster than other
high-level programming language In computer science, a high-level programming language is a programming language with strong Abstraction (computer science), abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ...
s which used
multi-pass compiler A multi-pass compiler is a type of compiler that processes the source code or abstract syntax tree of a program several times. This is in contrast to a one-pass compiler, which traverses the program only once. Each pass takes the result of the previ ...
s. The
JOVIAL JOVIAL is a high-level programming language based on ALGOL 58, specialized for developing embedded systems (specialized computer systems designed to perform one or a few dedicated functions, usually embedded as part of a larger, more complete dev ...
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 to implement an experimental shipboard
anti-submarine warfare Anti-submarine warfare (ASW, or in older form A/S) is a branch of underwater warfare that uses surface warships, aircraft, submarines, or other platforms, to find, track, and deter, damage, or destroy enemy submarines. Such operations are t ...
system, and was also used for the development of the
National Emergency Command Post Afloat The National Emergency Command Post Afloat (NECPA) was part of the United States government's Continuity of Operations plans during the 1960s. It was one-third of a triad composed of airborne, ground, and sea-based assets. History In October 1 ...
(NECPA) project which developed a strategic command and control system installed on
aircraft carrier An aircraft carrier is a warship that serves as a seagoing airbase, equipped with a full-length flight deck and facilities for carrying, arming, deploying, and recovering aircraft. Typically, it is the capital ship of a fleet, as it allows a ...
s and
cruiser A cruiser is a type of warship. Modern cruisers are generally the largest ships in a fleet after aircraft carriers and amphibious assault ships, and can usually perform several roles. The term "cruiser", which has been in use for several hu ...
s. 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 An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
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 In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
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

However, NELIAC programs were not easily
portable Portable may refer to: General * Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work * Portable classroom, a temporary building installed on the grounds of a school to provide a ...
because the language permitted manipulation of binary characters which were dependent on
word A word is a basic element of language that carries an semantics, objective or pragmatics, practical semantics, meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of w ...
lengths. Further, 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 In computer programming, an infinite loop (or endless loop) is a sequence of instructions that, as written, will continue endlessly, unless an external intervention occurs ("pull the plug"). It may be intentional. Overview This differs from: * ...
would occur. These were the
Achilles' heel An Achilles' heel (or Achilles heel) is a weakness in spite of overall strength, which can lead to downfall. While the mythological origin refers to a physical vulnerability, idiomatic references to other attributes or qualities that can lead to ...
s of NELIAC. Many other well-known computer experts like
Niklaus Wirth Niklaus Emil Wirth (born 15 February 1934) is a Swiss computer scientist. He has designed several programming languages, including Pascal (programming language), Pascal, and pioneered several classic topics in software engineering. In 1984, he w ...
made contributions to the project, but ultimately NELIAC fell out of favor after the Navy Department standardized on compilers with commercial support.


References


External links


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
Documentation
on softwarepreservation.org web-site {{Authority control Algol programming language family ALGOL 58 dialect