Browse Prior Art Database

Complex static analysis resolution of copy/include files Disclosure Number: IPCOM000239245D
Publication Date: 2014-Oct-23
Document File: 3 page(s) / 58K

Publishing Venue

The Prior Art Database


Disclosed is a method applied to static analysis that automates the process for calculating a correct search path used to resolve included files. This method extends the automatic search path calculation to eliminate ambiguous search path failures.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 43% of the total text.

Page 01 of 3

Complex static analysis resolution of copy/include files

When gathering metadata about an application's software artifacts for Application Understanding and Modernization, it is necessary to understand the relationships between source assets. Specifically, it is necessary to know, for program understanding, the file relationships between a main source file and any included files, as well as nested included files. A main source file might be a program, though the concept applies to other main source files that include others, such as Job Control Language (JCL). When a program is compiled, it is necessary to specify the locations of the included files, and in which order said files should be searched. This ordered set of file locations is called a search path, and it allows the compiler to locate the included files by name. When a main source file is scanned for static analysis, this search path must be explicitly specified or asserted by the tooling by examining the included files. If properly defined, all included files, regardless the associated include nesting level, become available to the scanner. If not properly defined, included files are not found, causing the scan to fail.

Current static analysis products rely on the user to assert a search path, which is

error prone. Knowledge about where to look is often not persisted in an easily available source, or it is simply lost with the lack of human expertise. This can result in 1) no include files being found, 2) some include files being found, or 3) multiple include files with the same name being found. The latter of these results in an issue called an ambiguous search path, a common problem with include file resolution.

While calculating search paths has been automated to various degrees in static analysis products, the automatic resolution of the ambiguous search path issue has not been addressed. In the current static analysis products, it is left up to the user to organize an application's asset before analysis, which requires the user to already

know the included file relationships, or by iteratively re-asserting different search paths to the scanner until all included files are resolved. The correct search path is often not available due to human factors, such as loss of personnel, or simply not available in cases of acquisitions, or lack of documentation in vendor provided code, or simply forgotten knowledge. One of the serious consequences is often a lack of ability to change and re-build programs. Addressing this problem is a fringe benefit

of this solution.

The novel contribution is a method to extend the automatic search path calculation to eliminate ambiguous search path failures. This is accomplished by adding logic to select included files in closest proximity in the file system to the main source file. The core idea is to automate the process that calculates a correct search path used to resolve included files.

The term container, herein, defines a universal te...