Embedded Interpretive Types for Translation-Time Error Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programming languages struggle to effectively handle logical commonality between different implementations at translation time, leading to inefficiencies and errors, particularly in cases where differences are based on types or constants, and current approaches like macro preprocessing and templates are cumbersome and error-prone.

Innovation Solution

The introduction of embedded interpretive types (EITs) that allow variables and constructs to be resolved and evaluated at translation time, enabling translation-time checking and avoiding runtime binding, while maintaining compatibility with conventional types and grammar.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If macro preprocessing is used to handle logical commonality, then code reusability is improved, but error detection is delayed and debugging difficulty increases

Engineering Contradiction:
Improvecode reusabilityVSAvoiderror detection
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent performs translation-time evaluation of embedded interpretive variables to resolve commonality issues before runtime execution. This preliminary action allows error detection to occur during translation rather than runtime, while still achieving code reusability through parameterized templates that can be instantiated multiple times with different type parameters.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If run-time checks are performed to ensure type safety, then reliability is improved, but execution overhead increases

Engineering Contradiction:
Improvetype safetyVSAvoidexecution overhead
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs type safety checks during translation-time evaluation of embedded interpretive variables rather than at runtime. This preliminary verification ensures type safety is established before execution, eliminating the need for runtime type checking and thus avoiding execution overhead while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If C++ templates are used for type-parameterized types, then code generality is improved, but error detection is delayed to link time

Engineering Contradiction:
Improvecode generalityVSAvoiderror detection timing
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent performs translation-time evaluation of embedded interpretive variables within templates to detect errors during translation rather than at link time. This preliminary error detection maintains code generality through template parameterization while improving reliability by catching errors earlier in the development process.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If Java generics with constraints are used, then type safety is improved, but language complexity increases

Engineering Contradiction:
Improvetype safetyVSAvoidlanguage complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts type safety verification to the translation-time evaluation of embedded interpretive variables, separating this concern from the core language grammar. This extraction maintains type safety while avoiding the need for complex generic constraint syntax, thus reducing language complexity while preserving reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

5Productivity

If static instantiation is performed at translation time, then runtime overhead is reduced, but adaptability to runtime parameters decreases

Engineering Contradiction:
Improveruntime overheadVSAvoidruntime parameter flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent uses embedded interpretive variables that can be evaluated at translation time when their values are known, providing static instantiation and reduced runtime overhead. Simultaneously, the system maintains adaptability by allowing runtime parameterization through template instantiation with different type parameters, effectively combining static and dynamic approaches where appropriate.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9262135B2Interpreter-based program language translator using embedded interpreter types and variables
Publication Date: 2016.02.16 OPTUMSOFT INC
  • US9262135B2 patent drawing
  • US9262135B2 patent drawing

AI summary

A programming language is extended to have embedded interpretive types (EIT) that define objects and variables to be resolved at translation time. A variable or data element having a type that is one of the EITs is referred to as an embedded interpretive variable (EIV). A control construct containing an EIV is interpreted (i.e. executed) at translation time.