Executable File Generation via Dependency Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for generating executable files from program files are inefficient, as they often require recompilation of all files when a single file is modified, which is not desirable and can lead to inaccurate executable generation due to reliance on modification dates alone.

Innovation Solution

The solution involves generating and storing dependency information between incorporated and incorporating files, allowing for the identification and recompilation of only the necessary files when a modification occurs, and supporting conditional incorporation by evaluating flags and conditions associated with program files.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If modification date alone is used to determine recompilation needs, then the process is simple, but incorporating files are not recompiled when their incorporated files are modified

Engineering Contradiction:
Improverecompilation process complexityVSAvoidexecutable file accuracy
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system performs preliminary action by generating and storing dependency information that maps incorporating files to their incorporated files before the recompilation process. This pre-established dependency map enables accurate identification of files requiring recompilation without complex real-time analysis, resolving the contradiction between process simplicity and accuracy.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all program files are recompiled when one file is modified, then the executable file is guaranteed to be accurate, but the compilation time and computational resources are wasted

Engineering Contradiction:
Improveexecutable file accuracyVSAvoidcompilation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system applies segmentation by dividing the recompilation process into targeted segments based on dependency relationships. Instead of recompiling all files, only the specific incorporating files that depend on the modified file are identified and recompiled. This segmentation maintains executable accuracy while significantly improving compilation efficiency by eliminating unnecessary recompilation of unrelated files.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If dependency information is tracked for all files, then recompilation accuracy is improved, but the system complexity and storage requirements increase

Engineering Contradiction:
Improvedependency tracking accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system introduces an intermediary component - the dependency information file - that mediates between the source files and the recompilation process. This intermediary stores the dependency relationships in a structured format, enabling precise tracking of file dependencies without directly complicating the core compilation system. The intermediary absorbs the complexity of dependency management, keeping the overall system architecture clean and maintainable.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8151253B2Efficient generation of executable file from program files when some of the program files expressly incorporate other program files
Publication Date: 2012.04.03 ORACLE INT CORP
  • US8151253B2 patent drawing
  • US8151253B2 patent drawing
  • US8151253B2 patent drawing

AI summary

Efficient generation of executable file from program files when some of the program files expressly incorporate other program files. In an embodiment, dependency information representing which program files (conditionally or unconditionally) incorporate other program files is generated and stored in a secondary (non-volatile) storage. When some program files are modified, the dependency information is used to identify for recompilation all the program files that incorporate any of the modified program files. The modified program files and the identified program files are recompiled and the executable file is regenerated.