format of the input information is to be found in a block of storage
labelled "CARD" whose values are set later in the program by a VECTOR
VALUES statement. The vector CARD actually has as values the format
-information in alphabetic form (sometimes called HOllerith, or
-binary-coded decimal
-(BCD)<indexterm><primary>BCD</primary></indexterm> form). The
+information in alphabetic form (sometimes called Hollerith, or
+binary-coded decimal (BCD)
+<indexterm><primary>BCD</primary></indexterm>
+<indexterm><primary>Hollerith (BCD)</primary></indexterm> form). The
con­struction and analysis of format information is thoroughly
-discussed in Chapter II.</para>
+discussed in Chapter II.</para>
<!-- beginpage I.14 at the soft hyphen above -->
<sect2 id='functions'><title>Functions</title>
+<indexterm><primary>Function Name</primary></indexterm>
+
<para>The name of a function consists of one to six letters or digits
followed by a period "." which must be written. The first character
of a function name must be a letter. If the function is
<para>The kind of arithmetic performed on a constant, variable or
function value is determined by its mode. There are five modes in
MAD; floating point, integer, Boolean, statement label, and function
-name. Floating point, integer, and Boolean constants were described
-in <xref linkend='constants'/>. Alphabetic constants are assumed to
-be of integer mode. <xref linkend='mode_declaration'/> describes how
-the modes of variables and functions are specified.</para>
+name.<indexterm><primary>Function Name</primary></indexterm> Floating
+point, integer, and Boolean constants were described in <xref
+linkend='constants'/>. Alphabetic constants are assumed to be of
+integer mode. <xref linkend='mode_declaration'/> describes how the
+modes of variables and functions are specified.</para>
<para>If an expression consists entirely of one constant, one
variable, or one function value, the mode is that of the constant,
originally stated just to achieve the "truncation" effect.</para>
<para>A statement label (appearing in the label field of a statement)
-is a constant of statement label mode. A function name with no
+is a constant of statement label mode. A function
+name<indexterm><primary>Function Name</primary></indexterm> with no
arguments (e.g. SIN.) is a constant of a function name mode. A single
constant, variable, or function value of statement label (function
name) mode is an expression of statement label (function name) mode.
</programlisting>
<para>The indentation of the statements between the conditional statements
-is not required but contributes to the readability.</para>
+is not required but contributes to the readability.
+<indexterm><primary>Indentation of Statements</primary></indexterm></para>
</sect2>
<sect2><title>CONTINUE Statement</title>
</sect2>
<sect2><title>Function return</title>
+<indexterm><primary>FUNCTION RETURN Statement</primary></indexterm>
+
<programlisting>
FUNCTION RETURN &scriptN;
</programlisting>
<para>Several specifications may be condensed into one larger one by
the use of the character "/". Each appearance of "/" (except as part
-of a Hollerith field-see <xref linkend='hollerith_fields'/>) indicates
+of a Hollerith field-see <xref linkend='hollerith_fields'/>)
+<indexterm><primary>Hollerith (BCD)</primary></indexterm> indicates
that the specification of a new line (or card) is to be started with
what follows. A pair "//" causes a blank line (or card), three "///"
cause two blank lines (or cards), etc. Thus, the specification</para>
assigned statement label mode (see <xref
linkend='statement_labels'/>).</para></listitem>
-<listitem><para>A function name constant is assigned function name mode (see
-<xref linkend='funcdefs'/>).</para></listitem>
+<listitem><para>A function name<indexterm><primary>Function
+Name</primary></indexterm> constant is assigned function name mode
+(see <xref linkend='funcdefs'/>).</para></listitem>
<listitem><para>A vector appearing as the dimension vector of some
array<indexterm><primary>Array Variables</primary></indexterm> in a
<!-- beginpage II.41 -->
of the following form:</para>
+<!-- not clear what this is referring to -->
+<indexterm><primary>Hollerith (BCD)</primary></indexterm>
+
<para>(a) VECTOR VALUES &scriptV; = c<subscript>0</subscript>,
c<subscript>1</subscript>, ... c<subscript>&scriptL;</subscript></para>
<indexterm><primary>EXTERNAL FUNCTION</primary></indexterm>
+<indexterm><primary>Function Name</primary></indexterm>
+
<!-- In the original, "variables and functions in the main program"
was typoed as "variables and function in the main program" (incorrect
singular). -->
<para>The general form of all function definition programs is as
follows:</para>
+<indexterm><primary>Function Return</primary></indexterm>
+
<programlisting>
INTERNAL FUNCTION (X)
ENTRY TO COS.
function definition this is also the last statement in the program.)
An entry must provided for each function being defined, but several
-functions may share any number of FUNCTION RETURN statements. An
-entry statement merely marks a point of entry, and does not effect the
+functions may share any number of FUNCTION RETURN statements.
+<indexterm><primary>Function Return</primary></indexterm>
+An entry statement merely marks a point of entry, and does not effect the
sequence of computation in any way. The expression after the word
"RETURN" indicates that on this return the value of the function is to
be the value of that expression. This expression must agree in mode
defines a single-valued function of X, called INVSF.. Since no mode
declaration is given it is assumed by the translator that X is
floating point. The value of INVSF.(X) is computed by the use of a
-compound conditional. If 0 < x ≤ 1, (statement G) then statement C
-is executed, causing a return to the calling program with the value
-1/x. If the condition 0 < x ≤ 1 is not true, then the condition X
-> 1 is tested (statement H). If X > 1, statement D is executed.
-Finally, if neither of the conditions 0 < x ≤ 1 or x > 1 is true,
-then statement I finds that X ≤ 0 and statement E (the error
+compound conditional. If 0 < x ≤ 1, (statement G) then
+statement C is executed, causing a return<indexterm><primary>Function
+Return</primary></indexterm> to the calling program with the value
+1/x. If the condition 0 < x ≤ 1 is not true, then the condition
+X > 1 is tested (statement H). If X > 1, statement D is executed.
+Finally, if neither of the conditions 0 < x ≤ 1 or x > 1 is
+true, then statement I finds that X ≤ 0 and statement E (the error
return) is executed. If</para>
<!-- beginpage II.48 after Z = T(I) + INVSP.(Y) *T(I-1) -->
(and then going on to S). Note that the END OF FUNCTION statement
will never be executed, but must be present in the definition.</para>
<indexterm><primary>END OF FUNCTION Statement</primary></indexterm>
+<indexterm><primary>Function Return</primary></indexterm>
</sect3>
</sect2>
(Spaces may not be relevant even if they are so enclosed (see section
2.15) on format specifications).</para>
-<para>1.4 The identification information in cols. 73-80 is not used by the
-computer for any purpose but printing during translation and is
+<para>1.4 The identification information in cols. 73-80 is not used by
+the computer for any purpose but printing during translation and is
arbitrary. Actually, it is good practice to use the first four of the
available eight columns for the first four digits of the project
number (i.e., for R10AN use R10A). Presumably, the last four would
-contain some sequence code.</para>
+contain some sequence code.<indexterm><primary>Identification (Card
+Format)</primary></indexterm>
+</para>
</sect1>
<sect1><title>Diagnostics</title>
</programlisting>
<!-- beginpage IV.4 -->
+<!-- not clear what this is referring to -->
+<indexterm><primary>Hollerith (BCD)</primary></indexterm>
+
<para>It is important to notice that in this example, as well as in the
first, the parametersⅆif executed as instructionsⅆwould produce no
operation.</para>
location of the format specification, (2) tape number, and (3) a list of
<!-- beginpage IV.5 -->
variables to be written. The WRITE BCD TAPE ... statement produces
-a call for this subroutine.</para></listitem>
+a call for this subroutine.
+<indexterm><primary>Hollerith (BCD)</primary></indexterm></para></listitem>
</varlistentry>
<varlistentry>
<indexterm><primary>FOR</primary><see>Iteration Statement</see></indexterm>
<indexterm><primary>FOR VALUES OF</primary><see>Iteration Statement</see></indexterm>
<indexterm><primary>Function Arguments</primary><see>Arguments of Functions</see></indexterm>
+<indexterm><primary>Function Statement</primary><see>Execute Statement</see></indexterm>
+<indexterm><primary>Function Value</primary><see>Value of a Function</see></indexterm>
+<indexterm><primary>Hierarchy of Parrentheses</primary><see>Parentheses</see></indexterm>
+
<index/>
</appendix>