COBOL PERFORM Range Restructuring for Control Flow Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy applications written in older programming languages like COBOL pose challenges for conversion to modern object-oriented structures due to their complex and flexible control flow structures, leading to inefficient and unpredictable code execution.

Innovation Solution

A system comprising a direct source code compiler with a global optimizer that analyzes and optimizes control flow in COBOL code, converting it directly into native Java bytecode, omitting unreachable code and restructuring PERFORM ranges to create well-structured, executable code suitable for object-oriented programming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional control flow analysis techniques are used on COBOL programs, then the analysis operates on rooted directed graphs, but it does not operate well on loose-structured programs leading to inefficient code optimization

Engineering Contradiction:
Improvecode optimization efficiencyVSAvoidprogram structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the COBOL program into well-defined control flow regions with single entry and exit points, transforming the loose-structured program into a collection of manageable segments that can be analyzed using conventional rooted directed graph techniques. This segmentation allows effective code optimization by breaking down complex control flow into analyzable units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically adjusts the control flow structure by introducing artificial entry and exit points, transforming static loose-structured COBOL code into a dynamic representation suitable for optimization analysis. This allows the analysis tool to adapt the program structure to match the requirements of conventional control flow analysis methods.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If legacy applications are converted to object-oriented programming structures, then compatibility with contemporary applications is improved, but extensive resources and time are required for conversion

Engineering Contradiction:
Improveprogramming language compatibilityVSAvoidconversion time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent performs preliminary control flow analysis and optimization on COBOL code before conversion to object-oriented programming. By pre-processing the source code to establish well-defined control regions and optimize control flow, the actual conversion process requires fewer resources and less time, as the structural issues are resolved in advance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary analysis and optimization layer between the COBOL source code and the object-oriented target code. This intermediary process transforms and optimizes the control flow structure, making the subsequent conversion to Java or other object-oriented languages more efficient and requiring fewer manual intervention resources.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If flexibility in control structures is maintained in legacy applications, then ease of development is improved, but control flow becomes unpredictable affecting execution efficiency

Engineering Contradiction:
Improvedevelopment flexibilityVSAvoidcontrol flow predictability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies local quality by maintaining the flexible control structures where they benefit development while introducing structured control regions where predictability is needed for execution. Each control flow region is locally optimized to balance flexibility and predictability, allowing developers to retain useful flexibility while ensuring reliable execution in critical paths.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9645803B2Methods and systems for forming an adjusted perform range
Publication Date: 2017.05.09 ROCKET SOFTWARE
  • US9645803B2 patent drawing
  • US9645803B2 patent drawing
  • US9645803B2 patent drawing

AI summary

One or more regions of COBOL source code having an entry point are identified. A PERFORM instruction associated with the entry point to analyze is selected. A PERFORM range for the selected PERFORM instruction is determined. An instruction that changes control flow in execution of the COBOL source code subsequent to the selected PERFORM instruction is identified. Flow-affected code resulting from the instruction is determined. An adjusted PERFORM range for the selected PERFORM instruction is formed.