S3 (programming language): Difference between revisions

Content deleted Content added
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 2 templates: hyphenate params (1×);
Link suggestions feature: 3 links added.
 
(3 intermediate revisions by 3 users not shown)
Line 1:
{{Use dmy dates|date=April 2022}}
{{Infobox programming language
| name = S3
Line 160 ⟶ 161:
* 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 "Compiler 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.
 
==References==