fbpx
Wikipedia

HAL/S

HAL/S (High-order Assembly Language/Shuttle)[1][2] is a real-time aerospace programming language compiler and cross-compiler for avionics applications used by NASA and associated agencies (JPL, etc.). It has been used in many U.S. space projects since 1973 and its most significant use was in the Space Shuttle program (approximately 85% of the Shuttle software was coded in HAL/S).[3] It was designed by Intermetrics in 1972 for NASA and delivered in 1973. HAL/S is written in XPL, a dialect of PL/I.[4] Although HAL/S is designed primarily for programming on-board computers, it is general enough to meet nearly all the needs in the production, verification, and support of aerospace and other real-time applications. According to documentation from 2005, it was being maintained by the HAL/S project of United Space Alliance.[5]

Goals and principles

The three key principles in designing 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 by people who have spaceflight knowledge, but may not necessarily have proficiency with computer programming.

HAL/S was designed not to include some constructs that were thought to be the cause of errors. For instance, there is no support for dynamic memory allocation. The language provides special support for real-time execution environments.

Some features, such as "GOTO" were provided chiefly to ease mechanical translations from other languages.[5] (page 82) [6]

"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. On the Preface page of the HAL/S Language Specification,[5] it says,

fundamental contributions to the concept and implementation of MAC were made by Dr. J. Halcombe Laning of the Draper Laboratory.

A proposal for a NASA standard ground-based version of HAL named HAL/G for "ground" was proposed, but the coming emergence of the soon to be named Ada programming language contributed to Intermetrics' lack of interest in continuing this work. Instead, Intermetrics would place emphasis on what would be the "Red" finalist which would not be selected.

Host compiler systems have been implemented on an IBM 360/370, Data General Eclipse, and the Modcomp IV/Classic computers. Target computer systems have included IBM 360/370, IBM AP-101 (space shuttle avionics computer), Sperry 1819A/1819B, Data General Nova and Eclipse, CII Mitra 125, Modcomp II and IV, NASA Std. Spacecraft Computer-l and Computer-2, ITEK ATAC 16M (Galileo Project), and since 1978 the RCA CDP1802 COSMAC microprocessor (Galileo Project and others).[7]

Syntax

HAL/S is a mostly free-form language: statements may begin anywhere on a line and may spill over the next lines, and multiple statements may be fitted onto the same line if required. However, non-space characters in the first column of a program line may have special significance. For instance, the letter 'C' in the first column indicates that the whole line is a comment and should be ignored by the compiler.

One particularly interesting feature of HAL/S is that it supports, in addition to a normal single line text format, an optional three-line input format in which three source code lines are used for each statement. In this format, the first and third lines are usable for superscripts (exponents) and subscripts (indices). The multi-line format was designed to permit writing of HAL/S code that is similar to mathematical notation.

As an example, the statement   could be written in single-line format as:

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

Exponentiation is denoted by two asterisks, as in PL/I and Fortran. The subscript   is denoted by a dollar sign,with the subscript expression enclosed in parentheses. The same code fragment could be written in multiple-line format as:

E 2 2 M X = A + B S I 

In the example, the base line of the statement is indicated by an 'M' in the first column, the exponent line is indicated by an 'E', and the subscript line is indicated by an 'S'.

Example

The following is a simple HAL/S program.[8] Every program begins with a labeled PROGRAM statement; the label consists of an identifier followed by a colon. All variables must be declared in the DECLARE group, which precedes any executable statements. Every program ends with a CLOSE delimiting statement.

 SIMPLE: PROGRAM; C CODE IN THIS TYPEFACE IS C HAL/S SOURCE DECLARE PI CONSTANT (3.14159266); DECLARE R SCALAR; READ(5) R; WRITE(6) PI R**2; CLOSE SIMPLE; 

Data types

HAL/S has native support for integers, floating point scalars, vector, matrices, booleans and strings of 8-bit characters, limited to a maximum length of 255. Structured types may be composed using a DECLARE STRUCT statement.

See also

  • IBM AP-101, the space shuttle avionics computer
  • Fortress, a programming language with advanced syntactic support for mathematical expressions
  • COLASL a programming language for the IBM 7030 Stretch with a similar "natural" format

References

  1. ^ "STS Software". NSTS 1988 News Reference Manual. NASA. Retrieved 2011-03-30.
  2. ^ Read "An Assessment of Space Shuttle Flight Software Development Processes" at NAP.edu. 1993. doi:10.17226/2222. hdl:2060/19930019745. ISBN 978-0-309-04880-4.
  3. ^ Lytle, P.J. (1981). "Current Status of the HAL/S Compiler". Archive.org.
  4. ^ "The Development of Hal/S". Department of Computer Science, University of Toronto.
  5. ^ a b c (PDF). November 2005. Archived from the original (PDF) on 2009-02-26. Retrieved 2016-11-16.
  6. ^ Ryer, Michael J. (1979). "Programming in HAL/S" (PDF). Source: NASA Technical Reports Server. Retrieved 2016-02-14.
  7. ^ Lytle, P.J. (1981). "Current Status of the HAL/S Compiler".
  8. ^ Ryer, Michael (September 1978). Programming in HAL/S (PDF). NASA. p. 2-1.

External links

  • NASA Office of Logic Design: Space Shuttle Computers and Avionics
    • Includes and specifications, , and .
  • Computers in Spaceflight: The NASA Experience – By George Tomayko (Appendix II: "HAL/S, A Real-Time Language for Spaceflight")

high, order, assembly, language, shuttle, real, time, aerospace, programming, language, compiler, cross, compiler, avionics, applications, used, nasa, associated, agencies, been, used, many, space, projects, since, 1973, most, significant, space, shuttle, prog. HAL S High order Assembly Language Shuttle 1 2 is a real time aerospace programming language compiler and cross compiler for avionics applications used by NASA and associated agencies JPL etc It has been used in many U S space projects since 1973 and its most significant use was in the Space Shuttle program approximately 85 of the Shuttle software was coded in HAL S 3 It was designed by Intermetrics in 1972 for NASA and delivered in 1973 HAL S is written in XPL a dialect of PL I 4 Although HAL S is designed primarily for programming on board computers it is general enough to meet nearly all the needs in the production verification and support of aerospace and other real time applications According to documentation from 2005 it was being maintained by the HAL S project of United Space Alliance 5 Contents 1 Goals and principles 2 Syntax 3 Example 4 Data types 5 See also 6 References 7 External linksGoals and principles EditThe three key principles in designing 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 by people who have spaceflight knowledge but may not necessarily have proficiency with computer programming HAL S was designed not to include some constructs that were thought to be the cause of errors For instance there is no support for dynamic memory allocation The language provides special support for real time execution environments Some features such as GOTO were provided chiefly to ease mechanical translations from other languages 5 page 82 6 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 On the Preface page of the HAL S Language Specification 5 it says fundamental contributions to the concept and implementation of MAC were made by Dr J Halcombe Laning of the Draper Laboratory A proposal for a NASA standard ground based version of HAL named HAL G for ground was proposed but the coming emergence of the soon to be named Ada programming language contributed to Intermetrics lack of interest in continuing this work Instead Intermetrics would place emphasis on what would be the Red finalist which would not be selected Host compiler systems have been implemented on an IBM 360 370 Data General Eclipse and the Modcomp IV Classic computers Target computer systems have included IBM 360 370 IBM AP 101 space shuttle avionics computer Sperry 1819A 1819B Data General Nova and Eclipse CII Mitra 125 Modcomp II and IV NASA Std Spacecraft Computer l and Computer 2 ITEK ATAC 16M Galileo Project and since 1978 the RCA CDP1802 COSMAC microprocessor Galileo Project and others 7 Syntax EditHAL S is a mostly free form language statements may begin anywhere on a line and may spill over the next lines and multiple statements may be fitted onto the same line if required However non space characters in the first column of a program line may have special significance For instance the letter C in the first column indicates that the whole line is a comment and should be ignored by the compiler One particularly interesting feature of HAL S is that it supports in addition to a normal single line text format an optional three line input format in which three source code lines are used for each statement In this format the first and third lines are usable for superscripts exponents and subscripts indices The multi line format was designed to permit writing of HAL S code that is similar to mathematical notation As an example the statement x a 2 b i 2 displaystyle x a 2 b i 2 could be written in single line format as X A 2 B I 2 Exponentiation is denoted by two asterisks as in PL I and Fortran The subscript i displaystyle i is denoted by a dollar sign with the subscript expression enclosed in parentheses The same code fragment could be written in multiple line format as E 2 2 M X A B S I In the example the base line of the statement is indicated by an M in the first column the exponent line is indicated by an E and the subscript line is indicated by an S Example EditThe following is a simple HAL S program 8 Every program begins with a labeled PROGRAM statement the label consists of an identifier followed by a colon All variables must be declared in the DECLARE group which precedes any executable statements Every program ends with a CLOSE delimiting statement SIMPLE PROGRAM C CODE IN THIS TYPEFACE IS C HAL S SOURCE DECLARE PI CONSTANT 3 14159266 DECLARE R SCALAR READ 5 R WRITE 6 PI R 2 CLOSE SIMPLE Data types EditHAL S has native support for integers floating point scalars vector matrices booleans and strings of 8 bit characters limited to a maximum length of 255 Structured types may be composed using a DECLARE STRUCT statement See also EditIBM AP 101 the space shuttle avionics computer Fortress a programming language with advanced syntactic support for mathematical expressions COLASL a programming language for the IBM 7030 Stretch with a similar natural formatReferences Edit STS Software NSTS 1988 News Reference Manual NASA Retrieved 2011 03 30 Read An Assessment of Space Shuttle Flight Software Development Processes at NAP edu 1993 doi 10 17226 2222 hdl 2060 19930019745 ISBN 978 0 309 04880 4 Lytle P J 1981 Current Status of the HAL S Compiler Archive org The Development of Hal S Department of Computer Science University of Toronto a b c HAL S Language Specification PDF November 2005 Archived from the original PDF on 2009 02 26 Retrieved 2016 11 16 Ryer Michael J 1979 Programming in HAL S PDF Source NASA Technical Reports Server Retrieved 2016 02 14 Lytle P J 1981 Current Status of the HAL S Compiler Ryer Michael September 1978 Programming in HAL S PDF NASA p 2 1 External links EditNASA Office of Logic Design Space Shuttle Computers and Avionics Includes language and compiler specifications programmer s guide and user manual Computers in Spaceflight The NASA Experience By George Tomayko Appendix II HAL S A Real Time Language for Spaceflight Retrieved from https en wikipedia org w index php title HAL S amp oldid 1094026638, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.