Computers in Spaceflight: The NASA Experience

[399-401] Appendix III: GOAL, A Language for Launch Processing
 
 
GOAL is a high-level language that uses the terminology of test engineers to write tests and procedures to certify that a Shuttle vehicle is ready for launch. When the first automated preflight checkout programs were written in the mid-1960s, Marshall Space Flight Center originated ATOLL, a special high-level language for use in preparing test procedures. GOAL superseded that language in the early 1970s.
 
Fig. III-1 is a segment of a GOAL program used to safe various spacecraft systems if a NOGO condition causes the final countdown to be suspended. Note that names of data items held in common in the Launch Processing System appear within brackets, <>, and data local to the program is named between parentheses, (). Statements familiar to high-level programming language users, such as READ, IF-THEN-ELSE, and LET, have similar functions in GOAL. Additional statements, such as VERIFY, make it possible for the engineers to test whether valves or switches are set properly or whether a value is within a specified range. SET permits switches to be activated.
 
Although seemingly highly structured, GOAL allows engineers to frequently repeat the most common error of their peers using FORTRAN: excessive unconditional jumps such as the one on line 2030, making it difficult for someone to read and modify the program. Whereas in older versions of FORTRAN it was necessary to create structures such as those found between lines 2026 and 2039 to handle multiple statements in the THEN and ELSE blocks of a selection structure, later versions of the language and GOAL itself (see lines 1980 through 1988) permit multiple lines of code to be included within the blocks. Therefore, the GOTO statements are often used less to create structure than to provide a "quick fix" when the logic of the program needs expanding.
 
GOAL is used both at the Kennedy Space Center and Vandenberg Air Force Base in launch processing systems and is expected to last for the duration of the Shuttle program.
 
Further information about GOAL is contained in the following documents:
 
- IBM Corporation, Launch Processing System Checkout, Control and Monitor Subsystem Detailed Software Design Specifications, Book 2, Part 1: GOAL Language Processor, KSC-LPS-IB-070-2, pt. 1, release S33, Cape Canaveral, FL, June 3, 1983.
 
- IBM Corporation, Launch Processing System Checkout, Control, and Monitor Subsystem: GOAL On-Board Interface Language, KSC-LPS-OP-033-4, release S33, Cape Canaveral, FL, April 27, 1983.
 
 

 FIGURE III-1
FIGURE III-1

FIGURE III-1- continued

 
FIGURE III-1- continued


 

 
link to previous pagelink to indexlink to next page