Identifying Procedural Structure in Cobol Programs

9Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.

Abstract

The principal control-flow abstraction mechanism in the Cobol language is the PERFORM statement. Normally, PERFORM statements are used in a straightforward manner to define parameterless procedures (where global variables are used to pass data into and out of procedure bodies). However, unlike most procedural constructs, distinct PERFORMed procedures can share code in arbitrarily complicated ways. In addition, PERFORMS can also be used in such a way as to cause transfers of control that do not correspond to normal call/return semantics. In this paper, we show how a Cobol program can be efficiently transformed into a semantically-equivalent procedurally well-structured representation, in which conventional procedures (i.e., with the usual call and return semantics and without code sharing) and procedure call statements replace PERFORMed code and PERFORM statements. This transformation process properly accounts for the non-procedural control flow that can result from ill-behaved PERFORM statements. The program representation derived from our analysis can be used directly in program understanding applications, program restructuring tools, and inter-language translators. In addition, it can be used as the starting point for a variety of context-sensitive program analyses, e.g., program slicing.

Cite

CITATION STYLE

APA

Field, J., & Ramalingam, G. (1999). Identifying Procedural Structure in Cobol Programs. In PASTE 1999 - Proceedings of the 1999 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (pp. 1–10). Association for Computing Machinery, Inc. https://doi.org/10.1145/381788.316163

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free