Extended Function Typing for Handle Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programming environments face inefficiencies in executing functions called by handles, leading to prolonged execution times due to tasks performed during compilation and runtime, which can be exacerbated by the lack of optimized code reuse.

Innovation Solution

Implementing extended function typing based on features of functions at compile time, allowing for the generation of function handle objects that identify associated code for reuse, thereby reducing the need for repetitive compilation and execution tasks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If extended function typing is implemented at compile time, then execution time is reduced, but device complexity increases

Engineering Contradiction:
Improvefunction execution timeVSAvoidprogramming environment complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent performs function typing and code analysis at compile time rather than runtime. The system pre-processes functions to determine their types and generates optimized execution plans before the actual execution occurs. This preliminary action moves the computational burden from runtime to compile time, achieving faster execution at the cost of increased initial processing complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments functions into different types based on their characteristics and usage patterns. By categorizing functions into distinct types with specific typing rules, the system can apply optimized processing strategies to each type. This segmentation allows the complex programming environment to handle functions in a structured, manageable way rather than treating all functions uniformly.

Inventive Principle:
Principle #1Segmentation

2Productivity

If compile-time code optimization is performed, then productivity increases, but loss of time during compilation increases

Engineering Contradiction:
Improvefunction execution efficiencyVSAvoidcompile time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs comprehensive code analysis and optimization preparations during the compile phase, creating optimized execution plans that will run efficiently at runtime. By investing time in preliminary analysis including determining function types, analyzing usage patterns, and generating optimized code, the system achieves significant productivity gains during actual function execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameters of function handling by introducing extended typing information and usage pattern data as new parameters. These additional parameters enable the compiler to make more informed optimization decisions, transforming the compilation process from a simple syntax check to a sophisticated optimization opportunity that improves runtime performance.

Inventive Principle:
Principle #35Parameter changes

3Speed

If function handles store detailed feature information, then execution speed improves, but memory requirements increase

Engineering Contradiction:
Improvefunction call execution speedVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential feature information needed for optimization into the function handle objects, rather than storing complete function definitions or all possible metadata. By selectively extracting critical attributes such as function type, input/output signatures, and usage patterns, the system achieves execution speed improvements while keeping memory overhead manageable.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of storing minimal function handle information and looking up detailed function definitions at runtime, the patent inverts the approach by pre-computing and storing essential execution characteristics in the handle itself. This inversion allows the system to bypass runtime lookup operations, achieving faster execution at the cost of increased handle object size.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS10949181B1Computing performance for execution of functions called by function handles
Publication Date: 2021.03.16 MATHWORKS INC
  • US10949181B1 patent drawing
  • US10949181B1 patent drawing
  • US10949181B1 patent drawing

AI summary

Extended types are defined for functions that are called by function handles in a programming environment. The extended types can be accessed and used by a computing system to improve compile-time and run-time performance of the computing system.