How Strobe Indexes Different Languages

Assembler

The assembler language Indexer treats as a procedure a sequence of source text statements that begin with a labeled executable statement, and end with the statement that precedes the next labeled executable statement. It uses the symbol that appears in the name field of the first statement as the procedure name. If two or more symbols are assigned to the same location, the Indexer uses the symbol that appears in the name field of the statement with the highest line number for the procedure name.

The percentage value in the title bar represents the total activity in the module, excluding any service routines invoked by the module.

The Indexer also considers an unlabeled sequence of statements that immediately follows an ORG statement as a procedure and creates a procedure name that contains three asterisks and the operation code in the first statement that follows the ORG statement.

When Strobe partitions an assembler language procedure into codeblocks for reporting, it partitions the procedure immediately after a branch instruction, and identifies the codeblock by the operation code of the first instruction that follows the branch.

COBOL

The COBOL language Indexer considers each paragraph to be a procedure and uses the paragraph name for the procedure name. It also considers statements that follow a section name but precede a paragraph name to be a procedure, and uses the section name for the procedure name. If one or more section names precede a paragraph name without intervening statements that generate code, the section name with the lowest line number is used to create a break in the report.

The percentage value in the title bar represents the total activity in the module, excluding any service routines invoked by the module.

When Strobe partitions a COBOL procedure into codeblocks for reporting, it partitions the procedure at a COBOL verb and uses the verb as a label to identify the codeblock.

FORTRAN

The FORTRAN language Indexer considers as a procedure a sequence of source text statements that begin with a numbered executable statement, and end with the statement that precedes the next numbered executable statement. It uses the statement number, preceded by STMT.LABEL, as the FORTRAN Statement Text.

The percentage value in the title bar represents the total activity in the module, excluding any service routines invoked by the module.

When Strobe partitions a FORTRAN procedure into codeblocks for reporting, it begins and labels the codeblocks with compiler-generated internal statement numbers (generally corresponding to targets of internally generated branch operations).

PL/I

The PL/I language Indexer treats as a procedure a sequence of statements that begin with a labeled statement or with an executable statement to which control can be passed, and continue to the next such statement.

The percentage value in the title bar represents the total activity in the module, excluding any service routines invoked by the module.

In general, procedure boundaries other than statement labels coincide with the beginning and ending boundaries of BEGIN and ON-UNIT blocks, PL/I procedures, DO groups, and IF statement alternatives.

C

If the control section is part of a named procedure, the C Indexer uses the procedure name. If the control section is part of "private code," the C Indexer assigns the first one the name $PRIVATE, the second one $PRI0000, the third one $PRI0001, and so on. The names are assigned in the same order as the control section's CESDID (Composite External Symbol Dictionary Identifier). To ensure a match between Strobe's naming convention and the CESDID's, specify your C list data sets to the C Indexer in the same order that they are link edited.