Beim symbolischen Testen mit AID können Datenfelder, Übersetzungseinheiten, Kapitel und Paragrafen mit den Namen angesprochen werden, die im Quelltext definiert wurden.
Um dagegen auf eine beliebige Zeile in der PROCEDURE DIVISION Bezug zu nehmen, muss der Benutzer einen Namen der Form
S’n’ (für eine Zeile mit einem Kapitel- oder Paragrafennamen) bzw.
S’nverbm’ (für eine Zeile mit COBOL-Verben)
angeben. Einen solchen LSD-Namen bildet COBOL2000 für jede Zeile in der PROCEDURE DIVISION und für jedes COBOL-Verb in einer Anweisungszeile (siehe Beispiel 7-1). Seine Bestandteile haben dabei folgende Bedeutung:
n | ist die maximal fünfstellige Nummer dieser Zeile in der PROCEDURE DIVISION, die COBOL2000 bei der Übersetzung vergeben hat. Sie muss ohne führende Nullen angegeben werden. Soll als Zeilennummer die (maximal sechsstellige) Folgenummer der Übersetzungseinheit verwendet werden, muss der Benutzer dies mit dem SDF-Operanden STMT-REFERENCE=COLUMN-1-TO-6 in der TEST-SUPPORT-Option bzw. mit COMOPT TEST-WITH-COLUMN1 anfordern. |
verb | ist die festgelegte Abkürzung eines COBOL-Verbs in der betreffenden Zeile. Diese Abkürzungen können der nachstehenden Liste entnommen werden. |
m | ist eine ein- oder zweistellige Nummer, die angibt, das wievielte von mehreren gleichen COBOL-Verben innerhalb der Zeile n bezeichnet werden soll.Falls m gleich 1 ist, wird es weggelassen. |
Beispiel 7-1
Bildung von LSD-Namen
000026 IF A = B MOVE A TO D MOVE B TO E. |
In dieser Anweisungszeile hat
das erste Verb den LSD-Namen S’26IF’,
das zweite Verb den LSD-Namen S’26MOV’,
das dritte Verb den LSD-Namen S’26MOV2’.
Ein ausführliches Beispiel für das Testen eines COBOL-Programms mit AID findet sich im Handbuch „AID“ [ 8].
Liste der COBOL-Verben und ihrer Abkürzungen:
ACC | ACCEPT | INI | INITIATE |
ADD | ADD | INSP | INSPECT |
ADDC | ADD CORRESPONDING | INV | INVOKE |
ALLO | ALLOCATE | KEE | KEEP |
ALT | ALTER | MOD | MODIFY |
CALL | CALL | MOV | MOVE |
CANC | CANCEL | MOVC | MOVE CORRESPONDING |
CLO | CLOSE | MRG | MERGE |
COM | COMPUTE | MUL | MULTIPLY |
CON | CONNECT | OPE | OPEN |
CONT | CONTINUE | PER | PERFORM oder EXIT PERFORM |
DEL | DELETE | oder Ende des Schleifenrumpfes 2) | |
DIS | DISPLAY | PERT | TEST OF PERFORM |
DIV | DIVIDE | RAIS | RAISE |
DSC | DISCONNECT | REA | READ |
END | END-xxx1) 2) | REDY | READY |
ENTR | ENTRY | REL | RELEASE |
ERA | ERASE | RES | RESUME |
EVAL | EVALUATE | RET | RETURN |
EXI | EXIT | REW | REWRITE |
EXI | EXIT PARAGRAPH | SEA | SEARCH |
EXI | EXIT SECTION | SET | SET |
EXIT | EXIT METHOD | SOR | SORT |
EXIT | EXIT PROGRAM | STA | START |
FET | FETCH | STO | STOP |
FIN | FINISH | STOR | STORE |
FND | FIND | STRG | STRING |
FRE | FREE | SUB | SUBTRACT |
GEN | GENERATE | SUBC | SUBTRACT CORRESPONDING |
GET | GET | TER | TERMINATE |
GO | GOBACK | UNST | UNSTRING |
GOT | GO TO | WRI | WRITE |
IF | IF | XML | XML |
INIT | INITIALIZE |
1) | expliziter Bereichsbegrenzer (z.B. END-ADD) |
2) | Der Haltepunkt für END liegt hinter dem Bereichsbegrenzer, insbesondere für END-PERFORM hinter dem vollständigen PERFORM. Zusätzlich gibt es einen Haltepunkt vor END-PERFORM, und zwar am Ende eines Schleifendurchlaufs. Dieser zweite Haltepunkt wird mit PER angesprochen. |