Library for automatically synthesizing programs from examples.
Microsoft PROgram Synthesis using Examples SDK (PROSE) is a framework of technologies for automatic generation of programs from input-output examples, keywords, and similar forms of imprecise specification. In PROSE, you define a domain-specific language (DSL) of programs that constitute your domain of useful tasks (e.g. a DSL of CSS selectors). At runtime, you give PROSE some (typically user-provided) input-output examples for the desired program's behavior, and its algorithms synthesize a ranked set of programs from this DSL that are consistent with the given examples. These programs can be saved and applied on similar user data after one learning session (typically with 1-4 examples). PROSE can be used to enable programming-by-example experience in an arbitrary user-facing application, provided the app developer describes its application domain in a DSL form.
As part of the project, the PROSE framework includes a set of specific technologies for various data wrangling domains. These include Transformation.Text, a library of string transformations first shipped as FlashFill in Microsoft Excel 2013, text extraction library with a DSL of programs that find a desired sequence of regions in a textual file, and several others. All of these data wrangling libraries, as well as the underlying program synthesis framework, can currently be used out of the box for research, education, and other non-commercial initiatives.
Requires NuGet 3.3 or higher.
- Microsoft.ProgramSynthesis.Common (>= 6.0.0)
- Microsoft.ProgramSynthesis.Compound.Extraction.Field (>= 6.0.0)
- Microsoft.ProgramSynthesis.Compound.Split (>= 6.0.0)
- Microsoft.ProgramSynthesis.Detection (>= 6.0.0)
- Microsoft.ProgramSynthesis.Extraction.Json (>= 6.0.0)
- Microsoft.ProgramSynthesis.Extraction.Text (>= 6.0.0)
- Microsoft.ProgramSynthesis.Extraction.Web (>= 6.0.0)
- Microsoft.ProgramSynthesis.Matching.Text (>= 6.0.0)
- Microsoft.ProgramSynthesis.Split.Text (>= 6.0.0)
- Microsoft.ProgramSynthesis.Transformation.Json (>= 6.0.0)
- Microsoft.ProgramSynthesis.Transformation.Text (>= 6.0.0)
- Microsoft.ProgramSynthesis.Transformation.Tree (>= 6.0.0)
|6.0.0 (current version)||35||3/19/2018|