Library entry points can be either typed or untyped, and they can have parameters. Type matching is performed on entry points during library linkage. If the description of an entry point in the template does not match the description of the entry point in the directory, the linkage is not made, and the calling program is terminated. Matching is based on several factors: the procedure type, the number of parameters, the parameter types, and the ways in which the parameters are passed. Parameters are passed as call-by-value, call-by-reference, or call-by-name.
An ALGOL library entry point can be any of the following:
-
ASCII string procedure
-
Boolean procedure
-
Complex procedure
-
Dinteger procedure
-
Double procedure
-
EBCDIC string procedure
-
Hexadecimal string procedure
-
Integer procedure
-
Real procedure
-
Untyped procedure
The parameters of an ALGOL library entry point can be any of the following:
-
Boolean variable, array, or direct array
-
Dinteger variable, array, or direct array
-
Double variable, array, or direct array
-
Real variable, array, or direct array
-
Integer variable, array, or direct array
-
Complex variable or array
-
EBCDIC string variable or array
-
ASCII string variable or array
-
Hexadecimal string variable or array
-
EBCDIC character array or direct array
-
ASCII character array or direct array
-
Hexadecimal character array or direct array
-
Event variable or array
-
Task variable or array
-
File or direct file
-
Pointer
-
A fully-specified procedure (declared using FORMAL) with the above restrictions on its possible parameters and type
-
Interlock variable or array

