Program synthesis

Program synthesis

Program synthesis comprises a range of technologies for the automatic generation of executable computer programs from high-level specifications of their behaviour. In contrast to compilation, the specifications are usually non-algorithmic.

The idea originated in the 60s with the aim of using techniquesfrom artificial intelligence to build an "automatic programmer",exploiting deep connections between mathematics and the theory of programming.Lack of early success meant that the mathematical approach soon fell out of favour, along with enthusiasm for AI, in general. Although some researchers stillwork on formal approaches, more success has been obtained by combining pure deductive techniques with powerful heuristics, and limiting their application to specific domains.

Some feel that the concept of automated program generation often results in poor "factoring" of information. Known redundancy should be factored out, not introduced, it is said. However, sometimes specific programming languages are limited such that one has to introduce repetition of a concept or pattern in order to keep using the same language. Here is a simplified illustration of factoring:

Poor Factoring: x = a + a + a + a + a Good Factoring: x = a * 5 (where the asterisk is "times")

Program generation tends to focus on automating the repetition seen in the first example, when a better approach is perhaps to find a higher-order abstraction, which is multiplication in this case. Other examples include putting parameters into a file or database instead of inside application code.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • International Symposium on Logic-based Program Synthesis and Transformation — The International Symposium on Logic based Program Synthesis and Transformation, commonly known as LOPSTR, was founded by Kung Kiu Lau in 1991. It has taken place annually since.Its original title was International Workshop on Logic Program… …   Wikipedia

  • Program refinement — Data transformation/Source transformation Concepts metadata · data mapping data transformation · model transf …   Wikipedia

  • Climate Change Science Program — The Climate Change Science Program (CCSP) was the program responsible for coordinating and integrating research on global warming by U.S. government agencies from February 2002 to June 2009.[1] Toward the end of that period, CCSP issued 21… …   Wikipedia

  • voice synthesis — program which produces sounds of human speech according to typed text …   English contemporary dictionary

  • Device driver synthesis and verification — The device driver is a program which allows the software or higher level computer programs to interact with a hardware device. These software components act as a link between the devices and the operating systems, communicating with each of these …   Wikipedia

  • Speech synthesis — Stephen Hawking is one of the most famous people using speech synthesis to communicate Speech synthesis is the artificial production of human speech. A computer system used for this purpose is called a speech synthesizer, and can be implemented… …   Wikipedia

  • National Center for Ecological Analysis and Synthesis — The National Center for Ecological Analysis and Synthesis (NCEAS) is a research center at the University of California, Santa Barbara, in Santa Barbara, California. Better known by its acronym, NCEAS (pronounced “n seas”) opened in May 1995, and… …   Wikipedia

  • Subtractive synthesis — is a method of subtracting harmonic content from a sound via sound synthesis, characterised by the application of an audio filter to an audio signal. For example, taking the output of a sawtooth generator and using a low pass filter to dampen its …   Wikipedia

  • High-level synthesis — (HLS), sometimes referred to as C synthesis, electronic system level (ESL) synthesis, algorithmic synthesis, or behavioral synthesis, is an automated design process that interprets an algorithmic description of a desired behavior and creates… …   Wikipedia

  • Digital waveguide synthesis — is the synthesis of audio using a digital waveguide. Digital waveguides are efficient computational models for physical media through which acoustic waves propagate. For this reason, digital waveguides constitute a major part of most modern… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”