Code Comment Generation Using Structural Usage and Dynamic Rules

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current modeling environments face challenges in generating informative and contextually relevant comments for code generated from models, which can hinder user understanding and maintenance of complex dynamic systems.

Innovation Solution

The implementation of a modeling environment that includes a code generator capable of producing comments based on dynamically specified information and structural usage of model entities, using data objects and intermediate representations to associate properties and rules for generating comments, while preserving comments through optimizations like buffer reuse and expression folding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If code is generated from model without context-specific comments, then code generation speed is maintained, but code readability and user understanding deteriorate

Engineering Contradiction:
Improvecontext information in codeVSAvoidcomment generation system complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by generating context-specific comments during the code generation process itself, rather than as a separate post-processing step. The comment generator uses the intermediate representation and model information to create comments that are embedded directly with the generated code, preserving context information while maintaining a streamlined workflow.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary comment generation system that acts as a mediator between the model compilation process and the final code output. This intermediary layer uses the intermediate representation to generate context-specific comments without disrupting the core code generation pipeline, thus adding information preservation capability while controlling system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If optimizations like buffer reuse and expression folding are applied, then code efficiency is improved, but comments may be lost without preservation mechanisms

Engineering Contradiction:
Improvecode execution efficiencyVSAvoidcomments during optimization
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system applies beforehand cushioning by implementing a comment preservation mechanism that proactively protects comments during the optimization process. Before optimizations like buffer reuse and expression folding are applied, the system identifies and preserves associated comments, ensuring they are not lost during the transformation to optimized code.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Solution Approach 2:

The patent implements feedback by monitoring the code transformation process and tracking how comments relate to code statements. When optimizations are applied, the system uses feedback from the intermediate representation to determine which comments should be preserved and how they should be associated with optimized code structures, maintaining the link between comments and their intended targets.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9563408B1Generating comments for code generated from a model
Publication Date: 2017.02.07 MATHWORKS INC
  • US9563408B1 patent drawing
  • US9563408B1 patent drawing
  • US9563408B1 patent drawing

AI summary

In an embodiment, a technique for generating a comment for an entity associated with a model. The comment may be generated based on at least (1) a structural usage of the entity and (2) a dynamically-specified rule that is associated with the structural usage of the entity. The rule may be used to control content of the comment. The comment may be incorporated in generated code for the model and the generated code including the comment may be outputted (e.g., displayed, stored).