Implicit Declarations:

Some identifiers have special meanings in XPL unless they are explicitly declared. Effectively they are treated as if they were declared in the outermost scope. The following table lists the implicitly declared identifiers and their meanings in standard XPL. The parameter descriptions identify parameters as being fixed (nex), character [descriptor] (dex), or any variable [not expression] (v).
addr(v) A function returning the fixed value of the address of the variable v.
byte(de,ne) A function returning the fixed value of the neth 8 bits of string de.
byte(de) A function returning the numeric value of the zeroth [leading] 8 bits of string de.
clock_trap A procedure which issues a service request to the submonitor [runtime]. In base XCOM this is a no-op.
compactify A procedure called automatically to repack the free storage area as required. Can be explicitly called by call compactify;.
corebyte(ne) Represents an array of characters where ne is an absolute byte address in memory. corebyte can be used on either side of a replace [=] operator.
coreword(ne) Represents an array of characters where ne is an absolute word [four-byte] address in memory. coreword(0) contains corebyte(0) thru corebyte(3).
date A function returning the fixed value of current date as (year-1900)*1000 + day_of_year [Julian date: Oct 17, 2001 = 01290].
date_of_generation A fixed variable initialized to the value of date at time of compilation.
descriptor(ne) A function returning the numeric value of the descriptor of the neth string. [used by compactify, not for end-users].
exit A procedure to abnormally terminate the XPL program: e.g. call exit;.
file(ne1,ne2) An array of psuedovariables (can be used on either side of a replace [=] operator) used to access random-access storage.
Assignment to file(n,x) writes record number x to file n.
Assignment from file(n,x) reads record number x from file n.
The length of the records is fixed and is determined by a constant in the submonitor.
freebase A fixed variable containing the address of the top of the constant strings in memory. [used by compactify, not for end-users].
freelimit A fixed variable containing the address of the last usable byte in the string data area. [used by compactify, not for end-users].
freepoint A fixed variable containing the address of the next free byte in the string data area. [used by compactify, not for end-users].
inline(ne1...) A procedure which inserts arbitrary machine code inline at compile-time. The first parameter is the opcode. Subsequent parameters are (machine-dependent) operands as constants or addresses as required by the instruction being generated.
input(ne) A function which returns a character [string] variable containing the contents of the next record on input stream ne.
input An alternate notation for input(0).
interrupt_trap A procedure which issues a service request to the submonitor [runtime]. In base XCOM this is a no-op.
length(de) A function returning a fixed value equal to the number of characters in the string de.
monitor A procedure which issues a service request to the submonitor [runtime]. In base XCOM this is a no-op.
monitor_link A fixed array which is used by some versions of XCOM to transmit information between an XPL program and the submonitor. In base XCOM this is not used.
ndescript(ne) A fixed variable containing the upper-bound of the array descriptor. [used by compactify, not for end-users].
output(ne) A character psuedovariable with the side-effect that any value assigned to it is written to output stream ne.
output An alternate notation for output(0).
shl(ne1,ne2) A function returning a fixed value computed by performing a logical left shift of the value of ne1 the number of bit positions indicated by ne2.
shr(ne1,ne2) A function returning a fixed value computed by performing a logical right shift of the value of ne1 the number of bit positions indicated by ne2.
substr(de,ne1,ne2) A function returning the character value of the substring of string de starting at position ne1 for a length of ne2 characters.
substr(de,ne) A function returning the character value of the substring of string de starting at position ne thru the end of the string.
time A function returning the fixed value of the current time-of-day in 100ths of a second past midnight.
time_of_generation A fixed variable initialized to the value of time at time of compilation.
trace A procedure which causes activation of a run-time machine instruction trace. e.g. call trace;
untrace A procedure which causes deactivation of a run-time machine instruction trace. e.g. call untrace;