Authors:
Alvise Spanò
;
Michele Bugliesi
and
Agostino Cortesi
Affiliation:
Università Ca’ Foscari Venezia, Italy
Keyword(s):
Static analysis, Analyzer, Type system, Type flow, Flow Type, Type rule, Storage, Picture, Record, Cobol, Label, Variable, Branch, Termination, Status, Convergence, Abstract interpretation, Coercion, Coerce, Environment, Judgement, Substitution, Grammar, Island grammar, Parser, Island parsing, Lexer, Parsing, LALR, Yacc, Lex, F#, .NET, IBM, z/OS, COBOL, COBOL85.
Related
Ontology
Subjects/Areas/Topics:
Health Engineering and Technology Applications
;
Neurocomputing
;
Neurotechnology, Electronics and Informatics
;
Programming Languages
;
Reverse Engineering
;
Software Engineering
Abstract:
Many business applications today still rely on COBOL programs written decades ago that are difficult to maintain and upgrade due to technological limitations and lack of experts in the language. Several companies have been trying to migrate their software base to modern platforms, but code translation is problematic because most business processes implemented are often no longer documented or even known. Applying existing Program Understanding techniques to COBOL could be a way for aiding IT specialists in charge of a porting - but useful raw information must be extracted from the source code in order to get these techniques yield to meaningful results. We believe that the types of variables used in programs are an important part of such raw information and we present an approach based on static analysis of types rather than data. Our system is capable of reconstructing the type-flow of a COBOL program throughout branches, jumps and loops in finite time and to track type information
on reused variables occurring in the code. It also detects a number of error-prone situations, type mismatches or misuses and notifies that by means of messages annotated in the code along with types inferred for each variable occurrence.
(More)