NECK

from Wikipedia, the free encyclopedia

HAL / S ( H igh-order A ssembly L anguage / S Huttle ) is a programming language , which for real-time applications in space vehicles by inter-Metrics on behalf of the NASA has been developed.

The developments began in the late 1960s under the name HAL . With the start of the Space Shuttle project , the suffix / S was added in 1972 because much of the shuttle's software was written in this language. HAL / S was also used in other space projects, for example to control the position of the Galileo probe.

HAL / S was in XPL , a dialect of PL / I , wrote.

Basic principles

The three objectives when designing the language were reliability, efficiency and platform independence . Aerospace-typical tasks (such as vector and matrix calculations ) can be performed in a way that is easily understood by people with aerospace knowledge who do not have deep programming skills.

HAL / S dispenses with constructs that are known to be sources of error. For example, there is no support for dynamic memory management . The language offers special support for real-time applications . Some elements, such as " GOTO ", were provided mainly to facilitate machine translations from other languages.

syntax

HAL / S works largely in a free format : statements can start at any point on a line and extend over the following lines, and multiple statements can be placed on a single line if desired. However, individual characters at the beginning of a line can have a special meaning. For example, a line will be recognized as a comment and will be ignored during compilation if it begins with the letter "C".

A special feature of the HAL / S syntax is the support of an optional three-line input format in which three source code lines represent an instruction. The first and third lines are used for superscripts ( exponents ) and subscripts ( indices ), which enables a kind of mathematical notation in the code.

For example, the equation can be written like this:

E       2     2
M  X = A  + B
S            I

Otherwise, as in Fortran and PL / I , exponents are marked with two asterisks; Indexes are enclosed in parentheses preceded by a dollar sign. The above example could also be represented as a one-liner as follows:

X = A ** 2 + B$(I) ** 2

Naming

The name HAL was chosen by Ed Copps, founding director of Intermetrics, the company that developed the language for NASA , in honor of MIT colleague Hal Laning. But HAL was also the name of the talking on-board computer of the spaceship Discovery One from one of the most famous science fiction films, 2001: A Space Odyssey from 1968, and is therefore a particularly suitable name for a programming language with an affinity for space travel.

Web links

Individual evidence

  1. ^ PJ Lytle: Introduction. (PDF) In: Current Status of the HAL / S Compiler on the Modcomp Classic 7870 Computer. National Aeronautics and Space Administration, accessed on February 27, 2014 : "Approximately 85% of the Shuttle Software is coded in HAL / S: a body of 2 million lines of comments, data declarations and executable lines of code."
  2. NASA: Programming in HAL / S ( Memento from March 19, 2009 in the Internet Archive ), on klabs.org. (PDF)