Continuous Code Evaluation and State Saving for Real-Time Error Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Programmers face challenges in debugging code as they need to constantly switch between writing and testing, losing context and incurring costs to return to the correct portion of the code, especially for novice programmers who struggle to understand debugging processes.

Innovation Solution

A technical computing environment (TCE) with a continuous evaluation component and saving state component that allows program code to be evaluated and state information to be saved in real-time, providing a live view of code execution and errors, enabling simultaneous creation, editing, and error identification without interrupting the coding process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If programmers constantly switch between writing and testing code, then code quality can be maintained, but context is lost and time efficiency deteriorates

Engineering Contradiction:
Improvecode qualityVSAvoidtime efficiency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables continuous evaluation of code as it is being written, eliminating the need to stop and separately test the code. The evaluation process runs continuously in the background, providing real-time feedback while the programmer continues writing, thus maintaining code quality without interrupting the coding flow and preserving context.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system performs preliminary evaluation of code segments as they are written, before the complete program is finished. This allows errors to be detected early in the coding process, enabling immediate correction while the programmer is still in the correct context, rather than discovering errors after completing the entire program.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If programmers use traditional debugging processes, then errors can be identified, but the learning curve increases and efficiency decreases

Engineering Contradiction:
Improveerror identificationVSAvoidlearning curve
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system provides automatic evaluation and error identification without requiring the programmer to manually execute or debug the code. The evaluation engine automatically analyzes the code, identifies errors, and presents them to the programmer in an understandable format, making the debugging process accessible to novice programmers without requiring deep knowledge of debugging techniques.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system provides immediate feedback about code errors as the programmer writes, rather than waiting for separate testing phases. This continuous feedback loop helps programmers understand what is wrong with their code and how to fix it, accelerating the learning process while maintaining reliable error identification.

Inventive Principle:
Principle #23Feedback

3Productivity

If code is evaluated continuously in real-time, then error identification improves and context is maintained, but system complexity increases

Engineering Contradiction:
Improveerror identification speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The evaluation system processes code in segments or blocks as they are written, rather than attempting to evaluate the entire program at once. This segmentation allows the system to provide continuous feedback without requiring complex analysis of the complete program structure, reducing system complexity while maintaining fast error identification.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9645915B2Continuous evaluation of program code and saving state information associated with program code
Publication Date: 2017.05.09 MATHWORKS INC
  • US9645915B2 patent drawing
  • US9645915B2 patent drawing
  • US9645915B2 patent drawing

AI summary

A device receives a program code being created or edited, executes a first portion of the program code to generate a first result, and executes a second portion of the program code to generate a second result. The device stores the first result and the second result, and compares the first result and the second result to determine a difference between the first result and the second result. The device utilizes the difference to identify an error in the program code, and provides information, associated with the difference and the error, for display.