Program Synthesis

Program Synthesis
Author: Sumit Gulwani
Publisher:
Total Pages: 138
Release: 2017-07-11
Genre: Computers
ISBN: 9781680832921

Program synthesis is the task of automatically finding a program in the underlying programming language that satisfies the user intent expressed in the form of some specification. Since the inception of artificial intelligence in the 1950s, this problem has been considered the holy grail of Computer Science. Despite inherent challenges in the problem such as ambiguity of user intent and a typically enormous search space of programs, the field of program synthesis has developed many different techniques that enable program synthesis in different real-life application domains. It is now used successfully in software engineering, biological discovery, compute-raided education, end-user programming, and data cleaning. In the last decade, several applications of synthesis in the field of programming by examples have been deployed in mass-market industrial products. This monograph is a general overview of the state-of-the-art approaches to program synthesis, its applications, and subfields. It discusses the general principles common to all modern synthesis approaches such as syntactic bias, oracle-guided inductive search, and optimization techniques. We then present a literature review covering the four most common state-of-the-art techniques in program synthesis: enumerative search, constraint solving, stochastic search, and deduction-based programming by examples. It concludes with a brief list of future horizons for the field.

Computer Program Synthesis Methodologies

Computer Program Synthesis Methodologies
Author: A.W. Biermann
Publisher: Springer Science & Business Media
Total Pages: 379
Release: 2012-12-06
Genre: Mathematics
ISBN: 9400970196

powerful operations on them. An early step in this direction was the development of APl, and more recent examples have been SETl which enables a user to code in terms of mathematical enti ties such as sets and BDl which allows a user, presumably a businessman, to specify a computation in terms of a series of tabular forms and a series of processing paths through which data flows. The design and implementation of such languages are examined in chapters by P. GOLDBERG. Another extension to traditional methods is made possible by systems designed to automatically handle low level flow-of control decisions. All the above higher level languages do this implicitly with their built in operators. PROLOG is a language which does this with a theorem proving mechanism employing primarily unification and backtracking. The programmer specifies the problem to be solved with a set of formal logic statements including a theorem to be proved. The theorem proving system finds a way to combine the axioms to prove the theorem, and in the process, it completes the desired calculation. H. GAllAIRE has contributed a chapter describing PROLOG giving many examples of its usage.

Computer Sound Design

Computer Sound Design
Author: Eduardo Miranda
Publisher: Taylor & Francis
Total Pages: 283
Release: 2012-10-12
Genre: Technology & Engineering
ISBN: 1136119655

This comprehensive introduction to software synthesis techniques and programming is intended for students, researchers, musicians, sound artists and enthusiasts in the field of music technology. The art of sound synthesis is as important for the electronic musician as the art of orchestration is important for symphonic music composers. Those who wish to create their own virtual orchestra of electronic instruments and produce original sounds will find this book invaluable. It examines a variety of synthesis techniques and illustrates how to turn a personal computer into a powerful and flexible sound synthesiser. The book also discusses a number of ongoing developments that may play an important role in the future of electronic music making. Previously published as Computer Sound Synthesis for the Electronic Musician, this second edition features a foreword by Jean-Claude Risset and provides new information on: · the latest directions in digital sound representation · advances in physical modelling techniques · granular and pulsar synthesis · PSOLA technique · humanoid voice synthesis · artificial intelligence · evolutionary computing The accompanying CD-ROM contains examples, complementary tutorials and a number of synthesis systems for PC and Macintosh platforms, ranging from low level synthesis programming languages to graphic front-ends for instrument and sound design. These include fully working packages, demonstration versions of commercial software and experimental programs from top research centres in Europe, North and South America.

Program Synthesis

Program Synthesis
Author: Sumit Gulwani
Publisher:
Total Pages: 119
Release: 2017
Genre: Automatic programming
ISBN: 9781680832938

Program synthesis is the task of automatically finding a program in the underlying programming language that satisfies the user intent expressed in the form of some specification. Since the inception of AI in the 1950s, this problem has been considered the holy grail of Computer Science. Despite inherent challenges in the problem such as ambiguity of user intent and a typically enormous search space of programs, the field of program synthesis has developed many different techniques that enable program synthesis in different real-life application domains. It is now used successfully in software engineering, biological discovery, computer-aided education, end-user programming, and data cleaning. In the last decade, several applications of synthesis in the field of programming by examples have been deployed in mass-market industrial products. This survey is a general overview of the state-of-the-art approaches to program synthesis, its applications, and subfields. We discuss the general principles common to all modern synthesis approaches such as syntactic bias, oracle-guided inductive search, and optimization techniques. We then present a literature review covering the four most common state-of-the-art techniques in program synthesis: enumerative search, constraint solving, stochastic search, and deduction-based programming by examples. We conclude with a brief list of future horizons for the field.

Behavioral Program Synthesis with Genetic Programming

Behavioral Program Synthesis with Genetic Programming
Author: Krzysztof Krawiec
Publisher: Springer
Total Pages: 185
Release: 2015-12-15
Genre: Technology & Engineering
ISBN: 3319275658

Genetic programming (GP) is a popular heuristic methodology of program synthesis with origins in evolutionary computation. In this generate-and-test approach, candidate programs are iteratively produced and evaluated. The latter involves running programs on tests, where they exhibit complex behaviors reflected in changes of variables, registers, or memory. That behavior not only ultimately determines program output, but may also reveal its `hidden qualities' and important characteristics of the considered synthesis problem. However, the conventional GP is oblivious to most of that information and usually cares only about the number of tests passed by a program. This `evaluation bottleneck' leaves search algorithm underinformed about the actual and potential qualities of candidate programs. This book proposes behavioral program synthesis, a conceptual framework that opens GP to detailed information on program behavior in order to make program synthesis more efficient. Several existing and novel mechanisms subscribing to that perspective to varying extent are presented and discussed, including implicit fitness sharing, semantic GP, co-solvability, trace convergence analysis, pattern-guided program synthesis, and behavioral archives of subprograms. The framework involves several concepts that are new to GP, including execution record, combined trace, and search driver, a generalization of objective function. Empirical evidence gathered in several presented experiments clearly demonstrates the usefulness of behavioral approach. The book contains also an extensive discussion of implications of the behavioral perspective for program synthesis and beyond.

Computer Program Synthesis Methodologies

Computer Program Synthesis Methodologies
Author: Alan Biermann
Publisher: Springer
Total Pages: 374
Release: 1982-12-31
Genre: Mathematics
ISBN: 9789027715043

powerful operations on them. An early step in this direction was the development of APl, and more recent examples have been SETl which enables a user to code in terms of mathematical enti ties such as sets and BDl which allows a user, presumably a businessman, to specify a computation in terms of a series of tabular forms and a series of processing paths through which data flows. The design and implementation of such languages are examined in chapters by P. GOLDBERG. Another extension to traditional methods is made possible by systems designed to automatically handle low level flow-of control decisions. All the above higher level languages do this implicitly with their built in operators. PROLOG is a language which does this with a theorem proving mechanism employing primarily unification and backtracking. The programmer specifies the problem to be solved with a set of formal logic statements including a theorem to be proved. The theorem proving system finds a way to combine the axioms to prove the theorem, and in the process, it completes the desired calculation. H. GAllAIRE has contributed a chapter describing PROLOG giving many examples of its usage.