Source Code Dependency Analysis for Automated Compilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in determining and retrieving necessary compile stage and run stage dependencies for source code, especially for open-source projects, which can be burdensome and time-consuming.

Innovation Solution

A method and system that heuristically analyze source code to identify and retrieve compile stage and run stage dependencies, facilitating compilation and execution by scanning for header/include files, libraries, and run-time infrastructure, and providing access information or generating required dependencies such as databases.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers manually determine and retrieve compile stage and run stage dependencies for source code, then dependency management can be performed, but the process becomes burdensome and time-consuming

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidtime to determine and retrieve dependencies
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs self-service by automatically analyzing source code to identify compile stage and run stage dependencies without requiring manual developer intervention. The processor autonomously scans the code, determines dependency types, and retrieves necessary dependencies, allowing the development toolchain to serve itself rather than relying on developer expertise and effort.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary action by automatically determining and retrieving both compile stage and run stage dependencies before the actual compilation and execution processes begin. This advance preparation eliminates the need for developers to manually identify and set up dependencies during the development workflow.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If automated dependency identification is implemented, then developer workload is reduced, but complexity of the compilation system increases

Engineering Contradiction:
Improveease of dependency managementVSAvoidcomplexity of compilation system
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system segments dependency management into two distinct stages: compile stage dependencies and run stage dependencies. By dividing the dependency identification process into separate phases corresponding to different compilation stages, the system simplifies the overall complexity while providing comprehensive dependency management. Each stage can be handled independently with appropriate analysis methods.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary processing layer that automatically analyzes source code and bridges the gap between raw code and dependency requirements. This intermediary component (the dependency identification system) handles the complexity of dependency analysis, shielding developers from the underlying complexity while maintaining ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10416973B2Analysis of source code for deployment
Publication Date: 2019.09.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10416973B2 patent drawing
  • US10416973B2 patent drawing
  • US10416973B2 patent drawing

AI summary

A method comprises receiving a source code having a data set with a processor, opening the data set and identifying compile stage dependencies and run stage dependencies in the data set, determining whether a compile stage dependency has been identified, determining whether the identified compile stage dependency is accessible responsive to determining that the compile stage dependency has been identified, retrieving the compile stage dependency responsive to determining that the identified compile stage dependency is accessible, and compiling the source code and saving the compiled source code in a memory using the retrieved compile stage dependency responsive to determining that no run stage dependencies have been identified.