Spreadsheet Program Synthesizer for Automated Data Retrieval
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Users face inefficiencies in spreadsheet data management due to manual data entry, excessive resource usage, and duplication, especially when changes need to be propagated across multiple cells, and non-programmers struggle with using spreadsheet programming languages to automate data retrieval.
Innovation Solution
The system automatically synthesizes programs in a spreadsheet programming language that match user-provided examples, ranking them based on criteria such as function frequency, complexity, and data type compatibility, to efficiently generate output and conserve system resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If users manually enter data into spreadsheet cells, then data can be populated in cells, but user time and computational resources are excessively consumed
Solution Approach 1:
The system enables self-service by automatically synthesizing spreadsheet programs without user intervention. The program synthesizer analyzes user examples and autonomously generates optimized programs that retrieve data from sources, eliminating the need for users to manually craft formulas or enter data repeatedly.
Solution Approach 2:
The system performs preliminary action by pre-synthesizing candidate programs and ranking them before execution. The program synthesizer generates multiple candidate programs, ranks them based on efficiency metrics, and selects the optimal program in advance, so users don't need to spend time on trial-and-error formula creation.
2Extent of automation
If users manually craft programs to retrieve data, then data can be obtained programmatically, but the process takes extended time and increases device resource usage
Solution Approach 1:
The program synthesizer performs self-service by automatically generating spreadsheet programs without user intervention. Users provide example inputs and outputs, and the system autonomously synthesizes, ranks, and selects optimal programs, eliminating the time users would spend learning and crafting formulas manually.
Solution Approach 2:
The system performs preliminary synthesis and ranking of candidate programs before user execution. Multiple candidate programs are generated and evaluated in advance based on efficiency criteria, so the optimal program is ready for immediate use without requiring users to spend time on program development.
3Extent of automation
If users write their own programs using spreadsheet functions, then data can be retrieved, but the programs may be inefficient and consume excess processing and memory resources
Solution Approach 1:
The system uses feedback by ranking candidate programs based on efficiency metrics and selecting the optimal program. The program synthesizer evaluates multiple candidate programs against efficiency criteria and user examples, providing feedback that guides selection of the most resource-efficient program for execution.
Solution Approach 2:
The system applies parameter changes by optimizing program parameters during synthesis. The program synthesizer adjusts program structure, function selection, and data source parameters to generate programs that are both correct and computationally efficient, reducing processing and memory resource usage compared to manually written programs.
4Adaptability or versatility
If multiple functions are combined to form programs, then complex data retrieval can be achieved, but program complexity increases making users unaware of or uncomfortable with using functions
Solution Approach 1:
The program synthesizer performs self-service by automatically combining multiple functions into optimized programs without requiring user understanding of programming concepts. Users simply provide example inputs and outputs, and the system autonomously synthesizes complex multi-function programs, making advanced data retrieval capabilities accessible to non-programmers.
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 a first example including input provided in a first cell in a spreadsheet; automatically synthesizing a plurality of candidate programs including a first set of candidate programs consistent with the first example, wherein each candidate program in the first set of candidate programs comprises at least one function in a spreadsheet programming language and, when the candidate program is executed, the candidate program generates output that matches the first example; ranking the plurality of candidate programs; and storing a highest-ranked program of the plurality of candidate programs in association with the first cell in the spreadsheet.


