Astronomical seeing: Difference between revisions
en>CocuBot m r2.7.2) (Robot: Adding no:Seeing |
en>Trappist the monk m →The Kolmogorov model of turbulence: Fix CS1 deprecated date parameter errors (test) using AWB |
||
Line 1: | Line 1: | ||
'''HAL/S''' ('''''H'''igh-order '''A'''ssembly '''L'''anguage'''/S'''huttle'')<ref>{{cite web|title=STS Software|url=http://science.ksc.nasa.gov/shuttle/technology/sts-newsref/sts-av.html#sts-dps-software|work=NSTS 1988 News Reference Manual|publisher=NASA|accessdate=2011-03-30}}</ref> is a [[real-time computing|real-time]] [[aerospace]] [[programming language]], best known for its use in the [[Space Shuttle program]].<ref>http://www.sqlite.org/talks/wroclaw-20090310.pdf</ref> It was designed by [[Intermetrics]] in the 1970s for [[NASA]]. HAL/S is written in [[XPL]], a dialect of [[PL/I]]. | |||
==Goals and principles== | |||
The three key principles in designing the language were reliability, efficiency, and [[Software portability|machine-independence]]. The language is designed to allow aerospace-related tasks (such as [[vector (geometry)|vector]]/[[matrix (mathematics)|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 are thought to be the cause of [[computer bug|error]]s. For instance, there is no support for dynamic memory allocation. The language provides special support for [[real-time computing|real-time]] execution environments. | |||
Some features, such as "[[GOTO]]" were provided chiefly to ease mechanical translations from other languages.<ref>[http://klabs.org/richcontent/software_content/hal_s/programming_in_hal-s.pdf ''Programming in HAL/S'', page 82]</ref> | |||
On the Preface page of the HAL/S Language Specification,<ref>[http://klabs.org/richcontent/software_content/hal_s/hal-s_language_specification.pdf ''HAL/S Language Specification'']</ref> it says, | |||
:fundamental contributions to the concept and implementation of MAC were made by Dr. [[J. Halcombe Laning]] of the [[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]]. | |||
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)|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. | |||
==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 fit 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 (computer programming)|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 <math>x = a^2 + b_i^2</math> could be written in single-line format as: | |||
<code> | |||
X = A ** 2 + B$(I) ** 2 </code> | |||
[[Exponentiation]] is denoted by two [[asterisk]]s, as in PL/I and [[Fortran]]. The subscript <math>i</math> is denoted by a [[dollar sign]],with the subscript expression enclosed in [[parenthesis|parentheses]]. The same code fragment could be written in multiple-line format as: | |||
E 2 2 | |||
M X = A + B | |||
S I </code> | |||
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'. | |||
==Data types== | |||
HAL/S has native support for [[integer]]s, [[floating point]] [[Variable (computing)|scalars]], [[vector (mathematics and physics)|vector]], [[matrix (mathematics)|matrices]], [[boolean data type|boolean]]s and [[string (computer science)|string]]s of 8-bit characters, limited to a maximum length of 255. Structured types may be composed using a <code>DECLARE STRUCT</code> statement. | |||
==See also== | |||
*[[IBM AP-101]] space shuttle avionics computer | |||
* [[Fortress (programming language)|Fortress]], a programming language with advanced syntactic support for mathematical expressions | |||
==References== | |||
{{Reflist|2}} | |||
==External links== | |||
*[http://klabs.org/DEI/Processor/shuttle/ NASA Office of Logic Design: Space Shuttle Computers and Avionics] | |||
**Includes [http://klabs.org/richcontent/software_content/hal_s/hal-s_language_specification.pdf language] and [http://klabs.org/richcontent/software_content/hal_s/hal-s_compiler_system_specification.pdf compiler] specifications, [http://klabs.org/richcontent/software_content/hal_s/hal-s_programmers_guide.pdf programmer's guide], and [http://klabs.org/richcontent/software_content/hal_s/hal-s-fc_users_manual.pdf user manual]. | |||
*[http://www.hq.nasa.gov/office/pao/History/computers/Appendix-II.html ''Computers in Spaceflight: The NASA Experience''] – By George Tomayko (Appendix II: "HAL/S, A Real-Time Language for Spaceflight") | |||
{{DEFAULTSORT:Hal S}} | |||
[[Category:Spacecraft components]] | |||
[[Category:Embedded systems]] | |||
[[Category:Avionics programming languages]] | |||
[[Category:High Integrity Programming Language]] |
Revision as of 02:41, 4 February 2014
HAL/S (High-order Assembly Language/Shuttle)[1] is a real-time aerospace programming language, best known for its use in the Space Shuttle program.[2] It was designed by Intermetrics in the 1970s for NASA. HAL/S is written in XPL, a dialect of PL/I.
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 are 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.[3]
On the Preface page of the HAL/S Language Specification,[4] it says,
- fundamental contributions to the concept and implementation of MAC were made by Dr. J. Halcombe Laning of the 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.
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.
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 fit 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'.
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 space shuttle avionics computer
- Fortress, a programming language with advanced syntactic support for mathematical expressions
References
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
External links
- NASA 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")