the largest number in a collection of n + 1 numbers A = {
a<subscript>0</subscript>, a<subscript>1</subscript>,
a<subscript>2</subscript>, ... a<subscript>n</subscript> } with n ≥
-1. A verbal description of the procedure (algorithm) might be:</para>
+1. A verbal description of the
+procedure<indexterm><primary>Procedure</primary></indexterm>
+(algorithm) might be:</para>
<procedure>
<step>
<indexterm><primary>Deletion of Parentheses</primary></indexterm> The
conventions used here are the same as in ordinary algebra and logic,
namely: Parentheses may be omitted, subject to the rules (A) and (B)
-below, but redundant parentheses are allowed.</para>
+below, but redundant parentheses are allowed.
+<indexterm><primary>Redyndant Parentheses</primary></indexterm></para>
<para>(A) Within any expression the sequence of computation, unless
otherwise indicated by parentheses, is:</para>
<varlistentry>
<term>(d) READ FORMAT &scriptF;, &scriptL;</term>
<listitem>
-<para>Reads cards into &scriptL; according to format &scriptF;.</para>
+<para>Reads cards into &scriptL; according to format &scriptF;.
+<indexterm><primary>READ FORMAT Statement</primary></indexterm></para>
</listitem>
</varlistentry>
<varlistentry>
<listitem>
<para>Transmits &scriptL; to or from tape &scriptN; in BCD form
according to format &scriptF;.
+<indexterm><primary>READ BCD TAPE</primary></indexterm>
+<indexterm><primary>READ BINARY TAPE</primary></indexterm>
</para>
</listitem>
</varlistentry>
<listitem>
<para>Transmits &scriptL; to or from drum &scriptN; starting with drum
address &scriptA; (where &scriptA; is an integer expression).</para>
+<indexterm><primary>READ DRUM</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry>
.
</literallayout>
-<para>The lower bound of each subscript is assumed to be unity.</para>
+<para>The lower bound of each subscript is assumed to be unity.
+<indexterm><primary>Range of Scubscripts</primary></indexterm></para>
<para>Thus, in the statement: DIMENSION XA(400, V), YT(300, K(3)) where V(0)
= 2,V(1) = 6, v(2) = 13, K(3) = 3, K(4) = 4, K(5) = 8, and K(6) = 9, the
</sect2>
<sect2><title>PROGRAM COMMON Declaration</title>
+<indexterm><primary>PROGRAM COMMON</primary></indexterm>
+
<para>This declaration has the form</para>
<para role='centered'>
<emphasis>numerical or alphabetical </emphasis> information only (not
statement labels or function names) and then only if it is a single
section program (i.e., storage is loaded with instructions only once)
-or, if it is a multiple section program, the PROGRAM COMMON region is
-identical in all sections of the program.</para>
+or, if it is a multiple section program, the PROGRAM
+COMMON<indexterm><primary>PROGRAM COMMON</primary></indexterm> region
+is identical in all sections of the program.</para>
</sect2>
<sect2 id='funcdefs'><title>Function Definitions</title>
linkend='internal_and_external'/>. Throughout this section a
single-valued function will be called a "function", and a function
with multiple outputs and/or multiple exits will be called a
-"procedure". For the purposes of this manual a recursive function is
-one whose definition contains calls for the function being defined
-ⅆ or calls for functions which ultimately call the one being
-defined. Recursive functions have the same structure as other
-functions although, in general, they will include statements of the
-type described in <xref linkend='list_statements'/>, and certain
-considerations should be borne in mind when constructing such
-functions. These considerations arise from the fact that<emphasis>
+"procedure".<indexterm><primary>Procedure</primary></indexterm> For
+the purposes of this manual a recursive function is one whose
+definition contains calls for the function being defined ⅆ or calls
+for functions which ultimately call the one being defined.
+<indexterm><primary>Recursive functions</primary></indexterm> Recursive
+functions have the same structure as other functions although, in
+general, they will include statements of the type described in <xref
+linkend='list_statements'/>, and certain considerations should be
+borne in mind when constructing such functions. These considerations
+arise from the fact that<emphasis>
names</emphasis><indexterm><primary>Name</primary></indexterm>,
instead of values, are used as function arguments. The problem is
considered in more detail in the examples in Chapter III.</para>
FUNCTION RETURN statement may appear without an accompanying
expression.<indexterm><primary>Function Call</primary></indexterm></para>
-<para>An example of a definition for procedures is as follows:</para>
+<para>An example of a definition for
+procedures<indexterm><primary>Procedure</primary></indexterm> is as
+follows:</para>
<indexterm><primary>EXTERNAL FUNCTION</primary></indexterm>
<para>Variable names appearing as <emphasis>dummy</emphasis> arguments
in any function declaration may not appear in a PROGRAM COMMON,
+<indexterm><primary>PROGRAM COMMON</primary></indexterm>,
ERASABLE<indexterm><primary>ERASABLE</primary></indexterm>, or
EQUIVALENCE declaration.<indexterm><primary>Dummy
Arguments</primary></indexterm><indexterm><primary>EQUIVALENCE
<indexterm><primary>COMMNT Subroutine</primary></indexterm>
<indexterm><primary>ERROR Subroutine</primary></indexterm>
<indexterm><primary>PRINT Subroutine</primary></indexterm>
+<indexterm><primary>PUNCH Subroutine</primary></indexterm>
+<indexterm><primary>READ Subroutine</primary></indexterm>
<!-- beginpage II.49 -->
<para>If a block designation
<indexterm><primary>Exammples, Recursive Functions</primary></indexterm>
<indexterm><primary>Examples, Symbol Manipulation</primary></indexterm>
+<indexterm><primary>Rrcursive Functions</primary></indexterm>
<para><emphasis>Problem:</emphasis> Find the first occurrence of an
arbitrary word in a given text.</para>
read from tape. The arguments are: (1) location of the format
specification, (2) tape number, and (3) a list of variable to be read.
The READ BCD TAPE . . . statement produces a call for this
-routine.</para></listitem>
+routine.
+<indexterm><primary>READ BCD TAPE</primary></indexterm>
+<indexterm><primary>READ BINARY TAPE</primary></indexterm>
+</para></listitem>
</varlistentry>
<varlistentry>
<term>READ</term>
-<listitem><para>Similar to TAPERD above except that the use of tape 7 (the input tape) is implied. The READ FORMAT . . . statement
-produces a call for this subroutine.</para></listitem>
+<listitem><para>Similar to TAPERD above except that the use of tape 7
+(the input tape) is implied. The READ FORMAT . . . statement produces
+a call for this subroutine. <indexterm><primary>READ
+Subroutine</primary></indexterm></para></listitem>
</varlistentry>
<varlistentry>
-<term>PUNCH</term>
-<listitem><para>Entry to this subroutine causes BCD information to be
-written on tape 5 (punch output type).
-The arguments are the same as PRINT and the PUNCH FORMAT
-. . . statement produces the call.</para></listitem>
+<term>PUNCH</term> <listitem><para>Entry to this subroutine causes BCD
+information to be written on tape 5 (punch output type). The
+arguments are the same as PRINT and the PUNCH FORMAT . . . statement
+produces the call. <indexterm><primary>PUNCH
+Subroutine</primary></indexterm></para>
+<indexterm><primary>READ FORMAT Statement</primary></indexterm>
+</listitem>
</varlistentry>
<varlistentry>
<indexterm><primary>OR WHENEVER Statement</primary><see>Conditional Statement</see></indexterm>
<indexterm><primary>Parameters, Subroutine</primary><see>Subroutine Parameters</see></indexterm>
<indexterm><primary>Precedence Hierarchy</primary><see>Parentheses</see></indexterm>
-
+<indexterm><primary>R (Column 11)</primary><see>Remark Declaration</see></indexterm>
+<indexterm><primary>Regional Notation</primary><see>Blocks, Input-Output</see></indexterm>
<index/>
</appendix>