Program Fragment Generation via Keyword Context Ranking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current tools for writing computer programs are often complex and require advanced programming skills, limiting their accessibility to ordinary users who may not possess these skills.

Innovation Solution

A program development framework (PDF) that allows users to create programs by successively specifying program fragments, using keyword information and context analysis to generate and rank candidate fragments, providing interactive output based on confidence levels and statistical information from a corpus of previously created programs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional programming tools are used, then program creation capability is maintained, but accessibility to ordinary users deteriorates due to complexity requirements

Engineering Contradiction:
ImproveAccessibility to ordinary usersVSAvoidProgramming tool complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent segments the program creation process into discrete, manageable steps where users specify individual program fragments through simple keyword inputs rather than writing complete complex programs at once. This breaks down the intimidating task of program creation into smaller, more accessible units that ordinary users can handle.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary component that translates simple keyword inputs into complete program fragments. This mediator handles the complexity of program synthesis, ranking candidates, and selecting appropriate code snippets, shielding users from the underlying complexity while maintaining program creation capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If automated program generation is implemented, then ease of use improves, but program creation precision deteriorates due to lack of user control

Engineering Contradiction:
ImproveEase of program creationVSAvoidProgram fragment accuracy
Core Design Contradiction:
Ease of operationVSManufacturing precision

Solution Approach 1:

The system dynamically adjusts the level of automation and user control based on the situation. It generates multiple candidate program fragments and presents them for user selection, allowing users to intervene when precision is critical while maintaining automated generation for routine tasks. The system adapts between fully automated and user-guided modes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback mechanisms where user selections and corrections are used to refine and re-rank program fragment candidates. This feedback loop improves precision by learning from user preferences and corrections, ensuring that automated generation becomes increasingly accurate while maintaining ease of use.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If multiple candidate program fragments are generated, then program creation flexibility improves, but processing time increases due to ranking and selection requirements

Engineering Contradiction:
ImproveProgram fragment selection flexibilityVSAvoidTime for fragment generation and ranking
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-ranking and organizing program fragment candidates before presenting them to users. This advance preparation reduces the time users need to spend evaluating options, as candidates are already sorted by relevance and quality based on the keyword inputs and context analysis.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9448772B2Generating program fragments using keywords and context information
Publication Date: 2016.09.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9448772B2 patent drawing
  • US9448772B2 patent drawing
  • US9448772B2 patent drawing

AI summary

A program development framework (PDF) is described herein which allows a user to produce a program in piecemeal fashion by successively specifying program fragments. The PDF creates a new program fragment by receiving keyword information from the user that describes a new program fragment, and then identifies context information that pertains to a programmatic context in which the new program fragment appears within the overall program being created. The PDF then generates a set of candidate program fragments that satisfy the keyword information and the context information, and ranks those candidate program fragments based on ranking information. At least part of the ranking information may be based on statistical information that is produced by analyzing a corpus of previous programs produced by one or more users. The PDF then provides the ranked program fragments to the user using various user-friendly presentation strategies.