Runtime Metadata Attribution via Imperative Statements

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development tools lack the ability to effectively utilize and retrieve metadata associated with program execution in managed runtime environments, as this metadata is typically discarded after compilation and cannot be retrieved from the compiled binary, limiting its utility and flexibility.

Innovation Solution

Implementing an imperative metadata attribution system that allows metadata to be set and retrieved within a managed runtime environment through programming interfaces, enabling metadata to be computed and obtained at various execution times based on available state, and providing mechanisms for metadata consumers to request and obtain metadata with explicit or implicit identifiers and parameters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If metadata is set at compile time and discarded after compilation, then compilation efficiency is improved, but metadata availability at runtime is lost

Engineering Contradiction:
Improvecompilation efficiencyVSAvoidmetadata availability
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent segments metadata into two types: compile-time metadata (set by attributes) and runtime metadata (set by imperative statements). This segmentation allows each type to serve its specific purpose - compile-time metadata for build optimization and runtime metadata for execution-time insights, resolving the contradiction between compilation efficiency and metadata availability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent establishes a preliminary metadata framework during compilation where the runtime environment is prepared to store and manage runtime metadata. This preliminary action enables subsequent runtime metadata collection without impacting compilation speed, as the infrastructure is already in place.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If metadata is retrieved from compiled binary, then metadata access is simplified, but metadata flexibility is reduced

Engineering Contradiction:
Improvemetadata accessVSAvoidmetadata flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent introduces a runtime environment as an intermediary between the compiled binary and metadata consumers. This intermediary maintains metadata in memory during execution, allowing flexible access patterns while preserving the simplicity of binary compilation. The runtime environment mediates between the static compiled code and dynamic metadata needs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent transforms metadata from a static, compile-time only concept to a dynamic system that can be set and retrieved at runtime. Metadata identifiers and values can be created, modified, and accessed dynamically during program execution, providing flexibility while maintaining ease of access through the runtime environment's metadata management interfaces.

Inventive Principle:
Principle #15Dynamics

3Speed

If metadata is computed at compile time, then computation speed is improved, but state dependency is reduced

Engineering Contradiction:
Improvecomputation speedVSAvoidstate dependency
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic metadata computation that can occur at runtime based on program state. Metadata values can be calculated when needed during execution, allowing the system to adapt to changing states while maintaining the ability to compute metadata efficiently when possible.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent allows changing the computation timing parameter from fixed compile-time to flexible runtime-based computation. This enables the system to optimize computation speed when state is stable while adapting to state changes when necessary, balancing speed and adaptability through parameter flexibility.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9104781B2Obtaining metadata set by imperative statement
Publication Date: 2015.08.11 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9104781B2 patent drawing
  • US9104781B2 patent drawing
  • US9104781B2 patent drawing

AI summary

Aspects of the subject matter described herein relate to imperative attribution. In aspects, metadata of a managed runtime environment may be set by imperative statements included in code of a program executing in the managed runtime environment. A metadata consumer may request the metadata. A metadata identifier of the metadata requested may be provided implicitly or explicitly. A parameter that indicates how to obtain the metadata may also be provided. In response, the metadata may be obtained and provided. The metadata may be computed at parse time, run time, or another time and may be computed based on state available to a managed runtime environment at the time the metadata is computed.