In
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
, programming by example (PbE), also termed programming by demonstration or more generally as demonstrational programming, is an
end-user development technique for
teaching a computer new behavior by demonstrating actions on concrete examples.
A Machine Learning Framework for Programming by Example - Microsoft
/ref> The system records user actions and infers a generalized program that can be used on new examples.
PbE is intended to be easier to do than traditional computer programming
Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
, which generally requires learning and using a programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
. Many PbE systems have been developed as research prototypes, but few have found widespread real-world application. More recently, PbE has proved to be a useful paradigm for creating scientific work-flows. PbE is used in two independent clients for the BioMOBY protocol
Seahawk
an
Gbrowse moby
Also the programming by demonstration (PbD) term has been mostly adopted by robotics researchers for teaching new behaviors to the robot through a physical demonstration of the task. The usual distinction in literature between these terms is that in PbE the user gives a prototypical product of the computer execution, such as a row in the desired results of a query; while in PbD the user performs a sequence of actions that the computer must repeat, generalizing it to be used in different data sets. For final users, to automate a workflow in a complex tool (e.g. Photoshop
Adobe Photoshop is a raster graphics editor developed and published by Adobe for Windows and macOS. It was created in 1987 by Thomas and John Knoll. It is the most used tool for professional digital art, especially in raster graphics editin ...
), the most simple case of PbD is the macro recorder
A macro recorder is software that records macros for playback at a later time.
The main advantage of using a macro recorder is that it allows a user to easily perform complex operations much faster and with less effort without requiring custom co ...
.
See also
* Query by Example
Query by Example (QBE) is a database query language for relational databases.
History
Query by Example was devised by Moshé M. Zloof at IBM Research during the mid-1970s, in parallel to the development of SQL, and influenced by the work on rela ...
* Automated machine learning
* Example-based machine translation
Example-based machine translation (EBMT) is a method of machine translation often characterized by its use of a bilingual corpus with parallel texts as its main knowledge base at run-time. It is essentially a translation by analogy and can be vie ...
* Inductive programming
* Lapis (text editor), which allows simultaneous editing of similar items in multiple selections created by example
* Programming by demonstration
* Test-driven development
Test-driven development (TDD) is a way of writing source code, code that involves writing an test automation, automated unit testing, unit-level test case that fails, then writing just enough code to make the test pass, then refactoring both the ...
References
External links
Henry Lieberman's page on Programming by Example
Online copy of Watch What I Do, Allen Cypher's book on Programming by Demonstration
Online copy of Your Wish is My Command, Henry Lieberman's sequel to Watch What I Do
A Visual Language for Data Mapping, John Carlson's description of an Integrated Development Environment (IDE) that used Programming by Example (desktop objects) for data mapping, and an iconic language for recording operations
User interfaces
Programming paradigms
Machine learning
{{comp-sci-stub