Microsoft Program Synthesis using Examples SDK
A framework for automatic programming or data wrangling from input-output examples.
Program Synthesis Framework
Microsoft PROSE SDK is a framework of technologies for programming by examples: automatic generation of programs from input-output examples at runtime.
Given a domain-specific language (DSL) and some input-output examples for the desired program’s behavior, PROSE synthesizes a ranked set of DSL programs that are consistent with the examples.
Data Wrangling DSLs
PROSE SDK includes a pre-defined suite of technologies for various kinds of data wrangling – cleaning and pre-processing raw semi-structure data into a form amenable to analysis:
- Flash Fill, a technology for text transformation by examples, available in Microsoft Excel and PowerShell.
- Data extraction from text files by examples, available in PowerShell and Azure Log Analytics.
- Data extraction and transformation of JSON by examples.
- Predictive file splitting technology, which splits a text file into the structured columns without any examples.
Installation
1. Install Visual Studio (), Visual Studio Code (), or Visual Studio for Mac ().
3a. Generate a new DSL project via Yeoman.
(requires Node.js)
npm install -g yo
npm install -g generator-prose
yo prose
or
3b. Build on top of the DSLs in our NuGet package.
Install-Package Microsoft.ProgramSynthesis
Install-Package Microsoft.ProgramSynthesis.Compiler
using Microsoft.ProgramSynthesis.Extraction.Text;
Getting Started
Tutorial
A step-by-step walkthrough of the process of building a DSL in PROSE and enabling program synthesis for it.
API & Samples
If you want to apply an existing PROSE DSL, check out its documentation on the left and our samples.
Resources
This section contains our slides and publications. Also, if you have any questions, feel free to email us or open an issue on GitHub.