PERFORM Behavior for Micro Focus COBOL

For Micro Focus COBOL applications, use the PERFORM behavior option in the workspace verification options window to specify the type of PERFORM behavior the application was compiled for. You can select:

For non-recursive PERFORM behavior, a COBOL program can contain PERFORM mines. In informal terms, a PERFORM mine is a place in a program that can contain an exit point of some active but not current PERFORM during program execution.

The program below, for example, contains a mine at the end of paragraph C. When the end of paragraph C is reached during PERFORM C THRU D execution, the mine "snaps" into action: control is transferred to the STOP RUN statement of paragraph A.

A.
  PERFORM B THRU C.
  STOP RUN.
 B.
  PERFORM C THRU D.
 C.
  DISPLAY 'C'.
 * mine
 D.
  DISPLAY 'D'.

Setting the compiler option to allow non-recursive PERFORM behavior where appropriate allows the COBOL Analyzer parser to detect possible mines and determine their properties. That, in turn, lets Component Maker analyze control flow and eliminate dead code with greater precision. To return to our example, the mine placed at the end of paragraph C snaps each time it is reached: such a mine is called stable. Control never falls through a stable mine. Here it means that the code in paragraph D is unreachable.