Performance-Ranked Programming-by-Example Synthesis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current PBE systems prioritize intent-based ranking functions that do not consider performance, leading to inefficient program synthesis that consumes excessive processing power, memory, and network traffic, especially in data-intensive tasks like data science.

Innovation Solution

Implement a performance ranking function to refine the synthesis process using a counterexample-guided inductive synthesis strategy, augmenting the initial specification with additional input/output examples to generate an efficient, behaviorally equivalent program.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If an intent-based ranking function is used to synthesize programs from input-output examples, then the synthesized program captures user intent accurately, but the program becomes inefficient and consumes excessive processing power, memory, and network traffic

Engineering Contradiction:
Improveintent accuracyVSAvoidprocessing power consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent changes the ranking parameter from intent-based scoring to performance-based scoring. The performance ranking function evaluates programs using metrics such as execution time, memory usage, and computational complexity, thereby selecting programs that are both accurate and efficient. This parameter transformation resolves the contradiction by making performance optimization the selection criterion rather than just intent matching.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements a feedback mechanism where the synthesized program is executed on the input data, and performance metrics are collected and fed back into the ranking function. This feedback loop allows the system to iteratively improve program selection by using actual performance data to refine future synthesis decisions, ensuring that programs are both accurate and resource-efficient.

Inventive Principle:
Principle #23Feedback

2Measurement precision

If the number of input/output examples in the specification map is increased to improve synthesis accuracy, then the program better captures user intent, but the synthesis time increases significantly

Engineering Contradiction:
Improveprogram accuracyVSAvoidsynthesis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies partial action by using a performance ranking function that can evaluate programs without requiring exhaustive testing on all input examples. The ranking function uses heuristics and performance metrics to quickly assess program quality, allowing the system to select accurate programs without fully exhaustively testing all possibilities, thus reducing synthesis time while maintaining accuracy.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent changes the evaluation parameter from exact match scoring to performance-based scoring. This allows the system to accept programs that achieve good performance on a subset of examples rather than requiring perfect accuracy on all examples, thereby reducing the number of examples needed and decreasing synthesis time while maintaining sufficient program quality.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If current PBE systems generate programs without performance consideration, then the synthesis process is simple and fast, but the generated programs are unusable or take an incredibly long time to run on large data

Engineering Contradiction:
Improvesynthesis speedVSAvoidprogram inefficiency
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The patent introduces performance parameters into the synthesis process by using a performance ranking function that evaluates programs based on execution time, memory usage, and computational complexity. This parameter integration allows the system to generate programs that are both fast to synthesize and efficient to execute, resolving the contradiction between synthesis speed and program efficiency.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent applies preliminary action by evaluating program performance characteristics during the synthesis process itself, rather than after generation. The performance ranking function provides real-time feedback on program efficiency, allowing the synthesis system to select and refine programs that are likely to be efficient before they are fully generated, thereby avoiding inefficient programs from being produced in the first place.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3717999B1Synthesized programming-by-example programs
Publication Date: 2025.10.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3717999B1 patent drawingFigure 1
  • EP3717999B1 patent drawingFigure 2
  • EP3717999B1 patent drawingFigure 3

AI summary

Systems, methods, and computer-executable instructions for synthesizing a performant program include receiving a plurality of input examples. A plurality of input and output data pairs are generated using the input examples as input to the synthesized program. An expanded equivalence set is generated from the plurality of input and output data pairs. The expanded equivalence set is input to a synthesis engine to synthesize a first performant program. The first performant program is received. The first performant program does not satisfy at least one input and output data pair of the plurality of input and output data pairs. At least one input and output data pairs is added to the equivalence set. The equivalence set of input and output data pairs to the synthesis engine to synthesize a second performant program. The second performant program is determined to satisfy each of the plurality of input and output data pairs.