Code Dependency Analysis Tool for C Program Porting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods fail to accurately identify and manage external program code dependencies, particularly in the C programming language, due to complications arising from compilation parameters, scope, and namespace, which hinders efficient software porting across operating systems.

Innovation Solution

A computer-implemented method using a code analyzing tool that processes the code base with compilation instructions, performing syntactic and semantic analysis to identify and list external program code dependencies, including those defined by #include directives and undefined identifiers, considering compilation parameters and scope.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If simple text search methods are used to identify external program code dependencies, then the identification process is fast and simple, but the accuracy is insufficient and errors occur in determining the proper dependency files

Engineering Contradiction:
Improveaccuracy of dependency identificationVSAvoidcomplexity of analysis tool
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces a code analyzing tool as an intermediary between the simple text search and the final dependency identification. This tool acts as a mediator that processes the code base with compilation instructions, performing syntactic and semantic analysis to accurately identify external program code dependencies while considering compilation parameters, scope, and namespace. The tool translates the complex compilation process into accurate dependency information without requiring users to manually navigate complex include paths and makefiles.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If comprehensive code analysis with compilation instructions is performed to accurately identify dependencies, then the accuracy improves, but the analysis time and processing complexity increase

Engineering Contradiction:
Improveaccuracy of dependency identificationVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies preliminary action by having the code analyzing tool process the code base with the actual compilation instructions before dependency identification. The tool performs syntactic and semantic analysis in advance, understanding the compilation parameters, include paths, and namespace definitions beforehand. This preliminary processing enables accurate dependency identification while optimizing the analysis process to avoid redundant computations during the actual dependency enumeration.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If modular program code development is used to improve reusability, then code reusability increases, but the difficulty of identifying and managing external program code dependencies increases

Engineering Contradiction:
Improvecode reusabilityVSAvoidcomplexity of dependency management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The code analyzing tool serves as an intermediary that automatically manages the complexity of dependencies introduced by modular development. Instead of requiring developers to manually track dependencies across multiple modules, the tool performs automated syntactic and semantic analysis, considering compilation parameters and namespace scope, to accurately identify and enumerate external program code dependencies. This intermediary approach maintains code reusability while automating the complex dependency management process.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8122440B1Method and apparatus for enumerating external program code dependencies
Publication Date: 2012.02.21 NETAPP INC
  • US8122440B1 patent drawing
  • US8122440B1 patent drawing
  • US8122440B1 patent drawing

AI summary

A computer-implemented method and apparatus for enumerating program code dependencies is provided. According to an embodiment of the invention, a user selects or otherwise indicates a code base to be processed and analyzed for the purpose of enumerating those program code modules required by the code base in order to properly compile and execute the code base. Next, the code base is processed in accordance with instructions designed to mirror those of a compiler for compiling the code base. Accordingly, external program code dependencies are identified using compile time compilation parameters, as well as extensive programming language analysis.