10. Standard environment
{The "standard environment" encompasses the constituent EXTERNAL-preludes, system-tasks and particular-postludes of a program-text.}
{The programmer is concerned with particular-programs {10.1.1.g}. These are always included in a program-text {10.1.1.a}which also contains the standard-prelude, a library-prelude, which depends upon the implementation, a system-prelude and system-tasks, which correspond to the operating environment, possibly some other particular-programs, one or more particular-preludes (one for each particular-program) and one or more particular-postludes.}
A) EXTERNAL :: standard ; library ; system ; particular.
B) STOP :: label letter s letter t letter o letter p.
a) program text : STYLE begin{94f} token, new LAYER1 preludes{b}, parallel{94f} token, new LAYER1 tasks{d} PACK, STYLE end{94f} token.
b) NEST1 preludeså : NEST1 standard prelude with DECS1{c}, NEST1 library prelude with DECSETY2{c}, NEST1 system prelude with DECSETY3{c}, where (NEST1) is (new EMPTY new DECS1 DECSETY2 DECSETY3).
c) NEST1 EXTERNAL prelude with DECSETY{b,f} : strong void NEST1 series with DECSETY1 {32b}, go on{94f} token where (DECSETY1) is (EMPTY), EMPTY.
d) NEST1 taskså : NEST1 system task{e} list, and also{94f} token, NEST1 user task{f} PACK list.
e) NEST1 system task{d} : strong void NEST1 unit{32d}.
f) NEST1 user task{d} : NEST2 particular prelude with DECS{c}, NEST2 particular program{g} PACK, go on{94f} token, NEST2 particular prelude{i}, where (NEST2) is (NEST1 new DECS STOP).
g) NEST2 particular program{f} : NEST2 new LABSETY3 joined label definition of LABSETY3{h}, strong void NEST2 new LABSETY3 ENCLOSED clause{31a,33a,c,34a,35a}.
h) NEST joined label definition of LABSETY{g,h} : where (LABSETY) is (EMPTY), EMPTY where (LABSETY) is (LAB1 LABSETY1), NEST label definition of LAB1{32c}, NEST joined label definition of LABSETY1{h}.
i) NEST2 particular postlude{f} : strong void NEST2 series with STOP{32b}. {Examples:
}
10.1.2. The environment condition
a) A program in the strict language must be akin {1.1.3.2.k}to some program-text whose constituent EXTERNAL-preludes and particular-postludes are as specified in the remainder of this section. {It is convenient to speak of the standard-prelude, the library-prelude, the particular-programs, etc. of a program when discussing those parts of that program which correspond to the constituent standard-prelude, etc. of the corresponding program-text.}
b) The constituent standard-prelude of all program-texts is that standard-prelude whose representation is obtained {10.1.3}from the forms given in sections 10.2 and 10.3.
c) The constituent library-prelude of a program-text is not specified in this Report {but must be specified for each implementation; the syntax of 'program text' ensures that a declaration contained in a library-prelude may not contradict any declaration contained in the standard-prelude} .
d) The constituent system-prelude (system-task-list) of all program-texts is that system-prelude (system-task-list) whose representation is obtained from the forms given in section 10.4, with the possible addition of other forms not specified in this Report {but to be specified to suit the operating environment of each implementation} .
e) Each constituent particular-prelude (particular-postlude) of all program-texts is that particular-prelude (particular-postlude) whose representation is obtained from the forms given in section 10.5, with the possible addition of other forms not specified in this Report {but to be specified for each implementation} .
10.1.3. The method of description of the standard environment
A representation of an EXTERNAL-prelude, system-task or particular-postlude is obtained by altering each form in the relevant sections of this chapter in the following steps:
· -, +, #[#*,
*#]# or / (-, +, * or /);
· #[# MINUSAB, -:= #]# , #[#
PLUSAB, +:= #]#, #[# TIMESAB, *:=, *:= #]# or #[# DIVAB, /:= #]#
(-:= , +:= , *:= or /:= );
· #[# <, LT #]# ,
#[# <=, LE #]# , #[# =, EQ #]#, #[# , NE #]#
, #[# >=, GE #]# or #[# >, GT #]# (<, <=,
, /=, >= or >);
· #[# =,EQ #]# or #[#
/=, NE #]# ( or /=);
Wherever {in the transput declarations} the representation 10
('134, ^) occurs within a
character-denotation or string-denotation, it is to be interpreted
as the representation of the string-item {8.1.4.1.b}used
to indicate "times ten to the power" (an alternative form {, if any,} of
"times ten to the power", "plus i times") on external media. {Clearly,
these representations have been chosen because of their similarity to those
of the times-ten-to-the-power-symbol {9.4.1.b}and
the plus-i-times-symbol {9.4.1.c}, but, on media
on which these characters are not available, other
string-items
must be chosen (and the letter-e-symbol and the letter-i-symbol
are obvious candidates).}
{The declarations in this chapter are intended to describe their effect clearly. The effect may very well be obtained by a more efficient method.}