Computers in Spaceflight: The NASA
Experience
[393-397] Appendix II: HAL/S,
A Real-Time Language for Spaceflight- HAL/S is a high-level programming language
commissioned by NASA in the late 1960s to meet the real-time
programming needs of the Agency. At the time, programs used on
board spacecraft were either written in assembly languages or in
interpreted languages. The former make programs difficult to write
and maintain, and the latter are insufficiently robust and slow.
Also, future systems were expected to be much larger and more
complex, and cost would be moderated by the use of a high-level
language. - Since NASA directed the development of the
language from the start, it influenced the final form it took and
specifically how it handled the special needs of real-time
processing. Statements common to other high-level languages such
as FORTRAN and PL/1 were put in HAL. These included decision
statements such as IF and looping statements such as FOR, DO, and
WHILE. NASA added to the list of statements several specifically
designed to create real-time processes, such as WAIT, SCHEDULE,
PRIORITY, and TERMINATE. The objective was to make HAL quickly
understandable to any programmer who had worked in other languages
and to give a variety of tools for developing the new real-time
programs. To make the language more readable by engineers, HAL
lists source in such a way as to retain traditional notation, with
subscripts and superscripts in their correct position, as
contrasted with other languages, which force such notation onto a
single level (see Fig. II-I.) - In addition to new statements, HAL
provided for new types of program blocks. Two of these specific to
real-time processing are COMPOOL and TASK. “Compools” are
declarations of data to be kept in