The Development of Hal/S

The Hal language was developed for NASA in the 1970s by Intermetrics (now AverStar) as a high-level language for software for the space shuttle and future projects.

"The initial version of Hal was a Fortran preprocessor. That is, it was written in Fortran and generated Fortran source code. In 1972, as the shuttle project advanced, the preprocessor approach was dropped and the language was renamed Hal/S (S for shuttle). Anticipating that Hal/S could be applied to any number of flight projects using a variety of flight computers, the new approach was to write compilers in a language customized for compiler writing, XPL, and to use an intermediate language, Halmat."

Space Shuttle Logo
"Although XPL facilitated the writing of Hal/S code generators for new target machines, it hindered rehosting Hal/S compilers. Because it was available for a very few machines, XPL had to be retargeted first." ...

"Using the IBM 360/370 as a host computer, Intermetrics and others undertook development of compilers for 11 target computers.3 Some implemented the full language, others inplemented subsets; not all have been completed satisfactorily. Applications include the Global Positioning System, the European Space Agency's Spacelab, and many others."

"The weakness of Hal/S is that it is readily available only when hosted on the IBM 360/370 series of mainframe computers. Intermetrics has also hosted Hal/S on the Modcomp IV and Classic, and on Data General Eclipse minicomputers. But the Modcomp implementation is used only by JPL, and the Eclipse development is no longer in use because address-space limitations reduce compile speed to around 30 lines/minute. Langley Research Center has hosted Hal/s on the Cyber in Pascal." ...

"References:
3. S.K.McMahon, "Future Strategy for Hal/S," Internal Document 901-17, Jet Propulsion Laboratory, Pasadena, Calif., Dec. 1981."

Selected Hal/S development experiences. (adapted from Klumpp)
DeveloperHost ComputerTarget ComputerUsecompletionCompiler lang.
IntermetricsIBM 360/370IBM 360/370General
purpose
1975XPL
IntermetricsIBM 360/370IBM AP-101Shuttle
GPS
1975XPL
IntermetricsIBM 360/370APPL TEC
ATAC-16M
JPL
Galileo
1982XPL
IntermetricsIBM 360/370RCA 1802inactiveNAXPL
IntermetricsIBM 360/370Modcomp II, IV,
and Classic
JPL Deep Space
Network and
Optical Nav.
1981XPL
IntermetricsModcomp IV and CLModcomp II, IV,
and Classic
JPL Deep Space
Network and
Optical Nav.
1981XPL
IntermetricsData General EclipseData General Eclipse inactiveNAXPL

NASA has some additional information on Hal/S at http://www.hq.nasa.gov/office/pao/History/computers/Appendix-II.html


Quotations and other material for this page were taken from:
Klumpp, Allan R. "Space Station Flight Software: Hal/S or Ada?" Computer March 1985: 20-28.
Shuttle logo courtesy NASA.

XPL Home