H ?
«
‹
←
→
›
»
Language peer sets for HAL/S:
United States↑
United States/1972↑
Designed 1972 ↑
1970s languages ↑
Third generation↑
High Cold War↑
Genus Multiline ↑
Multiline↑
Textually spatial↑
Spatially algorithmic ↑
Multiline/1972↑
Textually spatial/1972↑
Spatially algorithmic/1972↑
Multiline/United States↑
Textually spatial/United States↑
Spatially algorithmic/United States↑
HAL/S(ID:583/hal006)
NASA realtime control language
alternate simple view
Country: United States
Designed 1972
Published: 1972
Genus: Multiline
Real-time language used by NASA for onboard shuttle software, variant of the HAL shuttle language
Related languages
HAL |
→
|
HAL/S | |
Evolution of |
XPL |
→
|
HAL/S | |
Written using |
References:
(1976) The Higher Order Language Working Group (HOLWG) Working Paper on 23 exisitng programming languages
Ausman, N.E. and R.E. Loesh (1978) Ausman, N.E. and R.E. Loesh "Galileo Software Development Language Selection Study and Recommendation Summary" GMOE-78-20 Galileo MO&E, Jet Propulsion Laboratory 1978
Abstract
(1978) Ryer, Michael J., Programming in HAL/S NASA, Pasadena CA 1978
Sammet, Jean E (1978) Sammet, Jean E "Roster of programming languages for 1976-77" pp56-85
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
Browne, J. C.; D. I. Good, A. R. Tripathi, and W. (1979) Browne, J. C.; D. I. Good, A. R. Tripathi, and W. D. Young.
"Design of a Verifiable Subset for HAL/S" Texas University at Austin. Inst. for Computing Science and Computer Applications. 31 Dec 79, 264p NASA-CR-162814
Abstract
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
Ryer, M. J. (1979) Ryer, M. J. "Programming in HAL/S" NASA/Intermetrics Cambridge MA 1979
Abstract
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
Young, W. D.; Tripathi, A. R.; Good, D. I.; and Br (1979) Young, W. D.; Tripathi, A. R.; Good, D. I.; and Browne, J. C.
"Evaluation of verifiability in HAL/S programming language for aerospace computers" Computers in Aerospace Conference, 2nd, Los Angeles, Calif., October 22-24, 1979, Technical Papers pp359-366 NSG-1479
Extract:
Testing HAL/S with Gypsy
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
(1980) Intermetrics, Inc, HAL/S Language Specification, Version IR-542, September 1980
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
Newbold, Philip (1980) Newbold, Philip "HAL/S Language Specification" INTERMETRICS,Inc. 1980
Abstract
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
(1981) Intermetrics, Inc., HAL/S Programmer's Guide, Version IR-63-5, December 1981
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
(1981) Intermetrics, Inc., HAL/S-360 Compiler System Specification, Version IR-60-7, February 23,1981
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
Knobe, Bruce (1981) Knobe, Bruce "Flight Languages: Ada vs HAL/S" Journal of Guidance, Control, and Dynamics 4(1) 1981 pp35-40
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
McMahon, S.K. (1981) McMahon, S.K. "Future Strategy for Hal/S," Internal Document 901-17, Jet Propulsion Laboratory, Pasadena, Calif., Dec. 1981
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
Klumpp, Allan R. (1985) Klumpp, Allan R. "Space Station Flight Software: Hal/S or Ada?" Computer March 1985: 20-28.
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
(1987) "Computers in Spaceflight: The NASA Experience"
Extract:
HAL/S, A Real-Time Language for Spaceflight
Extract:
HYLA, ATOLL, SOL
in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
Resources
-
History of HAL/S
-
Computers in Spaceflight, The NASA Experience , HAL/S, A Real-Time Language for Spaceflight
- HAL/S is a high-level programming language
commissioned by NASA in the late 1960s to meet the real-time programming needs of the Agency. At the time, programs used on board spacecraft were either written in assembly languages or in interpreted languages. The former make programs difficult to write and maintain, and the latter are insufficiently robust and slow. Also, future systems were expected to be much larger and more complex, and cost would be moderated by the use of a high-level language. -
- Since NASA directed the development of the
language from the start, it influenced the final form it took and specifically how it handled the special needs of real-time processing. Statements common to other high-level languages such as FORTRAN and PL/1 were put in HAL. These included decision statements such as IF and looping statements such as FOR, DO, and WHILE. NASA added to the list of statements several specifically designed to create real-time processes, such as WAIT, SCHEDULE, PRIORITY, and TERMINATE. The objective was to make HAL quickly understandable to any programmer who had worked in other languages and to give a variety of tools for developing the new real-time programs. To make the language more readable by engineers, HAL lists source in such a way as to retain traditional notation, with subscripts and superscripts in their correct position, as contrasted with other languages, which force such notation onto a single level (see Fig. II-I.) -
- In addition to new statements, HAL
provided for new types of program blocks. Two of these specific to real-time processing are COMPOOL and TASK. "Compools" are declarations of data to be kept in a common data area, thus making the data accessible to more than one process at a time. It was expected that several processes would be active at once and that many data items would need to he dynamically shared. Task blocks are programs nested within larger programs that execute as real-time processes dependent on one of the most powerful HAL statements, SCHEDULE. -
- Scheduling the execution of specific tasks
was simplified by the syntax of HAL. Fig. II-2 shows the final page of the procedure STARTUP, written for use on the Galileo spacecraft attitude control computers, containing the master scheduling for the entire program. Note that the components of the SCHEDULE statement are the task name, start time, priority, and frequency. The statement "SCHEDULE ERROR0 ON RUPT0 PRIORITY(22);" tells the operating system to execute the task ERROR0 when an interrupt named RUPT0 occurs with a relative priority of 22. A different form of the SCHEDULE statement is "SCHEDULE RGl PRIORITY(12), REPEAT EVERY 6.190," which initiates the task handling the highest frequency rate group and repeats it 15 times per second. The statement TERMINATE cancels a specified task upon a designated interrupt or time. -
- HAL did not have the widespread use NASA
had hoped for when the language was designed. Although the Shuttle on-board programs are exclusively in HAL, the Galileo attitude control system is the only other flight project to make significant use of the language. Other projects, though instructed to use HAL, found reasons to avoid it, although the Deep Space Network applied it to some ground software. In late 1985, NASA announced that the language of choice for the upcoming Space Station project would be Ada. Commissioned by the Department of Defense in the late 1970s to serve as a standard for all contractor software development, Ada includes real-time constructs pioneered by HAL such as task blocks, scheduling, and common data. The announcement made NASA the first nonmilitary agency to use Ada. Ada was adopted because commercial compilers were available and because the DoD's insistence on its use meant that it would be around for a long time. It appears that HAL will be phased out, destined to join the hundreds of other dead computer languages.
-
The Development of HAL
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."
"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."
-
A scientific study of the problems of digital engineering for space flight systems, The program participants unanimously agreed that a top-down, structured methodology was the proper design approach for the Space Shuttle onboard software; however, the use of a high-order language and the selection of an operating system approach were subjects of significant controversy. The NASA had contracted for the development of HAL/S, a high-order language tailored specifically for aerospace avionics applications, but the capability of it, or any other high-order language, to produce code with size, efficiency, and speed comparable to those of an assembly language program was questioned. The issue was resolved after a competition, in which representative software routines were coded by different teams - one using HAL/S; the other, assembly language - showed that the approximate 10 percent loss in efficiency resulting from the use of the high-order language was insignificant when compared to the advantages of increased programmer productivity, program maintainability, and visibility into the software. Therefore, the use of HAL/S was baselined for all software modules except the operating system
[...]
A summary of baselined requirements and approaches covered in this section includes
A central five-computer complex. A 64k memory size A top-down, structured approach to software design. Use of HAL/S high-order software language An asynchronous, hybrid operating system approach. A standardized data bus system procured as a system from a single vendor, with no Hamming-type error protection A 24 I/O port and bus system, with functions allocated by criticality and use
Search in:
Google
Google scholar
World Cat
Yahoo
Overture
DBLP
Monash bib
NZ
IEEE 
ACM portal
CiteSeer
CSB
ncstrl
jstor
Bookfinder
|