Spreadsheet Program Synthesis for Example-Based Data Entry
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Users face inefficiencies in manually entering and propagating data in spreadsheets, leading to excessive resource usage and complexity, especially for non-programmers, and existing automated solutions are often inefficient or require significant user intervention.
Innovation Solution
A system that automatically synthesizes programs in a spreadsheet programming language, using dynamic programming algorithms to generate outputs based on user inputs, with complexity and confidence thresholds to ensure efficient resource use and accurate results.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If users manually enter data into spreadsheet cells, then data can be populated in the spreadsheet, but user time and computer storage resources are excessively consumed
Solution Approach 1:
The system automatically synthesizes programs that extract data from source tables and populate target cells in the spreadsheet, enabling the system to serve itself rather than requiring manual user intervention for data entry operations
Solution Approach 2:
The system pre-defines functions in the spreadsheet programming language that can be automatically combined to create data extraction and population programs, preparing the computational framework in advance to eliminate manual data entry steps
2Reliability
If users manually propagate data changes across the spreadsheet, then data consistency is maintained, but excessive user time and computational resources are consumed
Solution Approach 1:
The synthesized program automatically monitors and propagates data changes across all relevant cells in the spreadsheet, making the system self-correcting rather than requiring manual intervention to maintain data consistency
Solution Approach 2:
The system establishes automatic feedback loops where changes in source data are detected and automatically propagated to all dependent cells, ensuring real-time data consistency without user intervention
3Extent of automation
If non-programmer users attempt to use spreadsheet functions to obtain data programmatically, then data automation is achieved, but the complexity of the programming language creates barriers to use
Solution Approach 1:
The system introduces an automatic program synthesis intermediary that translates user-friendly specifications into complex spreadsheet programs, shielding non-programmer users from the underlying programming language complexity while achieving automated data acquisition
Solution Approach 2:
The system creates simplified copies or abstractions of the programming interface that are easier for non-programmers to use, while the automatic synthesis engine handles the translation to actual executable spreadsheet programs
4Extent of automation
If users manually craft programs to obtain data from spreadsheet functions, then data extraction is automated, but excessive time and computational resources are consumed during program creation
Solution Approach 1:
The system pre-defines and pre-compiles a library of spreadsheet functions and their combinations, preparing the computational building blocks in advance so that program synthesis can quickly assemble solutions without requiring users to manually craft programs from scratch
Solution Approach 2:
The automatic program synthesis system serves itself by autonomously analyzing data requirements and generating appropriate programs without requiring manual user intervention in the program creation process
5Adaptability or versatility
If users write their own programs to obtain data, then custom data extraction is achieved, but the programs may be inefficient and consume excess processing and memory resources
Solution Approach 1:
The system automatically optimizes program parameters such as function selection, argument ordering, and execution timing to minimize computational resource consumption while maintaining the required data extraction functionality
Solution Approach 2:
The system replaces inefficient manual program writing with an automatic synthesis engine that generates optimized programs, substituting the mechanical process of manual coding with an automated intelligent system that produces resource-efficient solutions
Data Source
AI summary
Techniques are described herein for automatically synthesizing programs that include one or more functions in a spreadsheet programming language. A method includes: receiving first user input in a first cell in a spreadsheet; automatically synthesizing a program using the first user input in the first cell as a first example, where the program includes at least one function in a spreadsheet programming language and, when the program is executed, the program generates output that matches the first example; determining at least one additional cell in the spreadsheet that is related to the first cell; determining that a display triggering condition is satisfied; and in response to the determining that the display triggering condition is satisfied, displaying, in each of the at least one additional cell, an output of the program corresponding to the additional cell.


