Code Compilation Management Service for Runtime Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software components distributed in intermediate language (IL) format may become incompatible between install time and runtime due to changes in applications, programs, or execution environments, rendering pre-compiled components useless.

Innovation Solution

An automated process recompiles specialized code cached in intermediate language for execution in a managed execution environment, using a code compilation management service that dynamically determines when recompilation is necessary based on analysis of changes and execution context, ensuring compatibility and efficient execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If software components are distributed in intermediate language format and pre-compiled at install time, then execution speed is improved, but compatibility is worsened due to changes between install time and runtime

Engineering Contradiction:
Improveexecution speedVSAvoidcompatibility
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary compilation of intermediate language components to native code at install time and stores them in a cache. This preliminary action prepares the components for fast execution while the system later verifies their validity at runtime through checksum comparison, resolving the contradiction between execution speed and compatibility.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If components are recompiled at runtime to ensure compatibility, then reliability is improved, but execution time is worsened

Engineering Contradiction:
ImprovecompatibilityVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system implements a feedback mechanism where checksums of cached native components are compared against checksums of current intermediate language components at runtime. This feedback determines whether recompilation is necessary, allowing the system to maintain reliability while minimizing execution time by only recompiling when changes are detected.

Inventive Principle:
Principle #23Feedback

3Reliability

If all components are recompiled whenever changes are detected, then compatibility is ensured, but resource consumption is worsened

Engineering Contradiction:
ImprovecompatibilityVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system segments the component validation and recompilation process by using checksums to identify only the specific components that have changed. Instead of recompiling all components, only the affected segments are recompiled, thereby ensuring compatibility while minimizing resource consumption.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If intermediate language components are used instead of native code, then adaptability is improved, but execution efficiency is worsened

Engineering Contradiction:
ImproveportabilityVSAvoidexecution efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system performs preliminary compilation of intermediate language to native code before execution. This allows the software to maintain adaptability through intermediate language portability while achieving native code execution efficiency, resolving the contradiction between adaptability and productivity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7730464B2Code compilation management service
Publication Date: 2010.06.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7730464B2 patent drawing
  • US7730464B2 patent drawing
  • US7730464B2 patent drawing

AI summary

The contents of a cache of specialized code interpreted into an intermediate language may be recompiled for execution in a managed execution environment in accordance with an automated process in such a manner to minimize any impact on machine resources.