S3 (programming language): Difference between revisions

Content deleted Content added
m Annotated Example: <source lang="algol68">
BG19bot (talk | contribs)
m Annotated Example: Remove blank line(s) between list items per WP:LISTGAP to fix an accessibility issue for users of screen readers. Do WP:GENFIXES and cleanup if needed. Discuss this at Wikipedia talk:WikiProject Accessibility#LISTGAP
Line 159:
 
* The declaration of the procedure is decorated with annotations that define a command line syntax allowing the program to be called from SCL, or used from an interactive shell with prompting for default parameter values.
 
* Procedure calls prefixed CTM are calls to the "Common Target Machine", an [[API]] offered by the VME operating system.
 
* "JSV" means "job space variable", VME's term for an environment variable, and the call on CTM_JS_READ reads the value of the variable.
 
* UNLESS means "if not"; ELSF means "else if".
 
* LONG LONG WORD declares a 128-bit integer, which is a native type supported by the 2900 architecture
 
* The bulk of the processing is delegated to another procedure, KERMIT_SUPPORT, which can be found in the same module. This is called indirectly via the operating system CTM_JS_CALL, similar to an exec() call on Unix systems; this ensures clean failure handling and tidying up of any resources in the event of a fatal error. The PDESC keyword constructs a "procedure descriptor": essentially it treats KERMIT_SUPPORT as a first-class function which can be passed as an argument to another function, making CTM_JS_CALL a higher-order function that calls its supplied argument with appropriate error handling.