HAL/S
From Wikipedia, the free encyclopedia
HAL/S is a real-time aerospace programming language, best known for its use in the Space Shuttle program. It was designed by Intermetrics in the 1970s for NASA. HAL/S is written in XPL, a dialect of PL/I.
The three key factors in writing the language were reliability, efficiency, and machine-independence. The language is designed to allow aerospace-related tasks (such as vector/matrix arithmetic) to be accomplished in a way that is easily understandable to people with spaceflight knowledge (and not necessarily with computer programming proficiency).
HAL/S is designed without certain functions (such as "GOTO" in BASIC) that are known to be the cause of many errors. There are no abbreviations for keywords, and keywords are all reserved so that they cannot also be used as variables. Considerations such as this are designed to reduce the chances of errors occurring, and also make it easy for others to read and understand the programs produced (self-documenting code).
HAL is not an acronym. On the Preface page of the HAL/S Specification[1], it says,
- "....Intermetrics wishes to acknowledge the fundamental contribution to the concept .....made by Dr. J. Halcombe Laning of the MIT's Draper Laboratory."
"HAL" was suggested as the name of the new language by Ed Copps, a founding director of Intermetrics, to honor Hal Laning, a colleague at MIT.
One particularly interesting feature of HAL is that it supports a three-line input format in which three source code lines are used for each statement, with the first and third lines usable for superscripts (exponents) and subscripts (indices). This was designed to be similar to mathematical notation.
[edit] See also
- IBM AP-101 space shuttle avionics computer
[edit] External links
- Computers in Spaceflight: The NASA Experience – By George Tomayko (Appendix II: "HAL/S, A Real-Time Language for Spaceflight")
- HAL/S Documents, including the language specification, programmer's guide, and compiler manuals
- http://klabs.org/DEI/Processor/shuttle/
[edit] References
- ^ HAL/S Specification IR-61-5 (see HAL/S Documents link above)

