Author: Sumit Gulwani
Publisher:
ISBN: 9781680832921
Category : Computers
Languages : en
Pages : 138
Book Description
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.
Program Synthesis
Author: Sumit Gulwani
Publisher:
ISBN: 9781680832921
Category : Computers
Languages : en
Pages : 138
Book Description
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.
Publisher:
ISBN: 9781680832921
Category : Computers
Languages : en
Pages : 138
Book Description
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.
Efficiency Considerations in Program Synthesis
Author: Elaine Kant
Publisher:
ISBN:
Category : Computer programming
Languages : en
Pages : 424
Book Description
Publisher:
ISBN:
Category : Computer programming
Languages : en
Pages : 424
Book Description
Behavioral Program Synthesis with Genetic Programming
Author: Krzysztof Krawiec
Publisher: Springer
ISBN: 3319275658
Category : Technology & Engineering
Languages : en
Pages : 185
Book Description
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.
Publisher: Springer
ISBN: 3319275658
Category : Technology & Engineering
Languages : en
Pages : 185
Book Description
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
Author: A.W. Biermann
Publisher: Springer Science & Business Media
ISBN: 9400970196
Category : Mathematics
Languages : en
Pages : 379
Book Description
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.
Publisher: Springer Science & Business Media
ISBN: 9400970196
Category : Mathematics
Languages : en
Pages : 379
Book Description
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.
Logic Program Synthesis and Transformation
Author: Timothy P. Clement
Publisher: Springer Science & Business Media
ISBN: 144713494X
Category : Computers
Languages : en
Pages : 345
Book Description
Logic programming synthesis and transformation are methods of deriving logic programs from their specifications and, where necessary, producing alternative but equivalent forms of a given program. The techniques involved in synthesis and transformation are extremely important as they allow the systematic construction of correct and efficient programs and have the potential to enhance current methods of software production. Transformation strategies are also being widely used in the field of logic program development. LOPSTR 91 was the first workshop to deal exclusively with both logic program synthesis and transformation and, as such, filled an obvious gap in the existing range of logic programming workshops. In attempting to cover the subject as comprehensively as possible, the workshop brought together researchers with an interest in all aspects of logic (including Horn Clause and first order logic) and all approaches to program synthesis and transformation. Logic Program Synthesis and Transformation provides a complete record of the workshop, with all the papers reproduced either in full or as extended abstracts. They cover a wide range of aspects, both practical and theoretical, including the use of mode input-output in program transformation, program specification and synthesis in constructive formal systems and a case study in formal program development in modular Prolog. This volume provides a comprehensive overview of current research and will be invaluable to researchers and postgraduate students who wish to enhance their understanding of logic programming techniques.
Publisher: Springer Science & Business Media
ISBN: 144713494X
Category : Computers
Languages : en
Pages : 345
Book Description
Logic programming synthesis and transformation are methods of deriving logic programs from their specifications and, where necessary, producing alternative but equivalent forms of a given program. The techniques involved in synthesis and transformation are extremely important as they allow the systematic construction of correct and efficient programs and have the potential to enhance current methods of software production. Transformation strategies are also being widely used in the field of logic program development. LOPSTR 91 was the first workshop to deal exclusively with both logic program synthesis and transformation and, as such, filled an obvious gap in the existing range of logic programming workshops. In attempting to cover the subject as comprehensively as possible, the workshop brought together researchers with an interest in all aspects of logic (including Horn Clause and first order logic) and all approaches to program synthesis and transformation. Logic Program Synthesis and Transformation provides a complete record of the workshop, with all the papers reproduced either in full or as extended abstracts. They cover a wide range of aspects, both practical and theoretical, including the use of mode input-output in program transformation, program specification and synthesis in constructive formal systems and a case study in formal program development in modular Prolog. This volume provides a comprehensive overview of current research and will be invaluable to researchers and postgraduate students who wish to enhance their understanding of logic programming techniques.
Software Synthesis from Dataflow Graphs
Author: Shuvra S. Bhattacharyya
Publisher: Springer Science & Business Media
ISBN: 1461313899
Category : Technology & Engineering
Languages : en
Pages : 198
Book Description
Software Synthesis from Dataflow Graphs addresses the problem of generating efficient software implementations from applications specified as synchronous dataflow graphs for programmable digital signal processors (DSPs) used in embedded real- time systems. The advent of high-speed graphics workstations has made feasible the use of graphical block diagram programming environments by designers of signal processing systems. A particular subset of dataflow, called Synchronous Dataflow (SDF), has proven efficient for representing a wide class of unirate and multirate signal processing algorithms, and has been used as the basis for numerous DSP block diagram-based programming environments such as the Signal Processing Workstation from Cadence Design Systems, Inc., COSSAP from Synopsys® (both commercial tools), and the Ptolemy environment from the University of California at Berkeley. A key property of the SDF model is that static schedules can be determined at compile time. This removes the overhead of dynamic scheduling and is thus useful for real-time DSP programs where throughput requirements are often severe. Another constraint that programmable DSPs for embedded systems have is the limited amount of on-chip memory. Off-chip memory is not only expensive but is also slower and increases the power consumption of the system; hence, it is imperative that programs fit in the on-chip memory whenever possible. Software Synthesis from Dataflow Graphs reviews the state-of-the-art in constructing static, memory-optimal schedules for programs expressed as SDF graphs. Code size reduction is obtained by the careful organization of loops in the target code. Data buffering is optimized by constructing the loop hierarchy in provably optimal ways for many classes of SDF graphs. The central result is a uniprocessor scheduling framework that provably synthesizes the most compact looping structures, called single appearance schedules, for a certain class of SDF graphs. In addition, algorithms and heuristics are presented that generate single appearance schedules optimized for data buffering usage. Numerous practical examples and extensive experimental data are provided to illustrate the efficacy of these techniques.
Publisher: Springer Science & Business Media
ISBN: 1461313899
Category : Technology & Engineering
Languages : en
Pages : 198
Book Description
Software Synthesis from Dataflow Graphs addresses the problem of generating efficient software implementations from applications specified as synchronous dataflow graphs for programmable digital signal processors (DSPs) used in embedded real- time systems. The advent of high-speed graphics workstations has made feasible the use of graphical block diagram programming environments by designers of signal processing systems. A particular subset of dataflow, called Synchronous Dataflow (SDF), has proven efficient for representing a wide class of unirate and multirate signal processing algorithms, and has been used as the basis for numerous DSP block diagram-based programming environments such as the Signal Processing Workstation from Cadence Design Systems, Inc., COSSAP from Synopsys® (both commercial tools), and the Ptolemy environment from the University of California at Berkeley. A key property of the SDF model is that static schedules can be determined at compile time. This removes the overhead of dynamic scheduling and is thus useful for real-time DSP programs where throughput requirements are often severe. Another constraint that programmable DSPs for embedded systems have is the limited amount of on-chip memory. Off-chip memory is not only expensive but is also slower and increases the power consumption of the system; hence, it is imperative that programs fit in the on-chip memory whenever possible. Software Synthesis from Dataflow Graphs reviews the state-of-the-art in constructing static, memory-optimal schedules for programs expressed as SDF graphs. Code size reduction is obtained by the careful organization of loops in the target code. Data buffering is optimized by constructing the loop hierarchy in provably optimal ways for many classes of SDF graphs. The central result is a uniprocessor scheduling framework that provably synthesizes the most compact looping structures, called single appearance schedules, for a certain class of SDF graphs. In addition, algorithms and heuristics are presented that generate single appearance schedules optimized for data buffering usage. Numerous practical examples and extensive experimental data are provided to illustrate the efficacy of these techniques.
Logic Program Synthesis from Incomplete Information
Author: Pierre Flener
Publisher: Springer Science & Business Media
ISBN: 1461522056
Category : Computers
Languages : en
Pages : 258
Book Description
Program synthesis is a solution to the software crisis. If we had a program that develops correct programs from specifications, then program validation and maintenance would disappear from the software life-cycle, and one could focus on the more creative tasks of specification elaboration, validation, and maintenance, because replay of program development would be less costly. This monograph describes a novel approach to Inductive Logic Programming (ILP), which cross-fertilizes logic programming and machine learning. Aiming at the synthesis of recursive logic programs only, and this from incomplete information, we take a software engineering approach that is more appropriate than a pure artificial intelligence approach. This book is suitable as a secondary text for graduate level courses in software engineering and artificial intelligence, and as a reference for practitioners of program synthesis.
Publisher: Springer Science & Business Media
ISBN: 1461522056
Category : Computers
Languages : en
Pages : 258
Book Description
Program synthesis is a solution to the software crisis. If we had a program that develops correct programs from specifications, then program validation and maintenance would disappear from the software life-cycle, and one could focus on the more creative tasks of specification elaboration, validation, and maintenance, because replay of program development would be less costly. This monograph describes a novel approach to Inductive Logic Programming (ILP), which cross-fertilizes logic programming and machine learning. Aiming at the synthesis of recursive logic programs only, and this from incomplete information, we take a software engineering approach that is more appropriate than a pure artificial intelligence approach. This book is suitable as a secondary text for graduate level courses in software engineering and artificial intelligence, and as a reference for practitioners of program synthesis.
Logic Program Synthesis and Transformation
Author: Yves Deville
Publisher: Springer Science & Business Media
ISBN: 1447132343
Category : Computers
Languages : en
Pages : 258
Book Description
This volume contains extended versions of papers presented at the Third International Workshop on Logic Program Synthesis and Transformation (LOPSTR 93) held in Louvain-la-Neuve in July 1993. Much of the success of the workshop is due to Yves Deville who served as Organizer and Chair. Many people believe that machine support for the development and evolution of software will play a critical role in future software engineering environments. Machine support requires the formalization of the artifacts and processes that arise during the software lifecycle. Logic languages are unique in providing a uniform declarative notation for precisely describing application domains, software requirements, and for prescribing behavior via logic programs. Program synthesis and transfonnation techniques formalize the process of developing correct and efficient programs from requirement specifications. The natural intersection of these two fields of research has been the focus of the LOPSTR workshops. The papers in this volume address many aspects of software develop ment including: deductive synthesis, inductive synthesis, transforma tions for optimizing programs and exploiting parallelism, program analysis techniques (particularly via abstract interpretation), meta programming languages and tool support, and various extensions to Prolog-like languages, admitting non-Horn clauses, functions, and constraints. Despite the progress represented in this volume, the transition from laboratory to practice is fraught with difficulties.
Publisher: Springer Science & Business Media
ISBN: 1447132343
Category : Computers
Languages : en
Pages : 258
Book Description
This volume contains extended versions of papers presented at the Third International Workshop on Logic Program Synthesis and Transformation (LOPSTR 93) held in Louvain-la-Neuve in July 1993. Much of the success of the workshop is due to Yves Deville who served as Organizer and Chair. Many people believe that machine support for the development and evolution of software will play a critical role in future software engineering environments. Machine support requires the formalization of the artifacts and processes that arise during the software lifecycle. Logic languages are unique in providing a uniform declarative notation for precisely describing application domains, software requirements, and for prescribing behavior via logic programs. Program synthesis and transfonnation techniques formalize the process of developing correct and efficient programs from requirement specifications. The natural intersection of these two fields of research has been the focus of the LOPSTR workshops. The papers in this volume address many aspects of software develop ment including: deductive synthesis, inductive synthesis, transforma tions for optimizing programs and exploiting parallelism, program analysis techniques (particularly via abstract interpretation), meta programming languages and tool support, and various extensions to Prolog-like languages, admitting non-Horn clauses, functions, and constraints. Despite the progress represented in this volume, the transition from laboratory to practice is fraught with difficulties.
Logic-Based Program Synthesis and Transformation
Author: Maurizio Gabbrielli
Publisher: Springer Nature
ISBN: 3030452603
Category : Computers
Languages : en
Pages : 270
Book Description
This book constitutes the thoroughly refereed post-conference proceedings of the 29th International Symposium on Logic-Based Program Synthesis and Transformation, LOPSTR 2019, held in Porto, Portugal, in October 2019. The 15 revised full papers were carefully reviewed and selected from 32 submissions. In addition to the 15 papers, this volume includes 2 invited papers. The symposium cover all aspects of logic-based program development, stages of the software life cycle, and issues of both programming-in-the-small and programming-in-the-large. This year LOPSTR extends its traditional topics to include also logic-based program development based on integration of sub-symbolic and symbolic models, on machine learning techniques and on differential semantics. The papers are grouped into the following topics: static analysis, program synthesis, constraints and unification, debugging and verification, and program transformation.
Publisher: Springer Nature
ISBN: 3030452603
Category : Computers
Languages : en
Pages : 270
Book Description
This book constitutes the thoroughly refereed post-conference proceedings of the 29th International Symposium on Logic-Based Program Synthesis and Transformation, LOPSTR 2019, held in Porto, Portugal, in October 2019. The 15 revised full papers were carefully reviewed and selected from 32 submissions. In addition to the 15 papers, this volume includes 2 invited papers. The symposium cover all aspects of logic-based program development, stages of the software life cycle, and issues of both programming-in-the-small and programming-in-the-large. This year LOPSTR extends its traditional topics to include also logic-based program development based on integration of sub-symbolic and symbolic models, on machine learning techniques and on differential semantics. The papers are grouped into the following topics: static analysis, program synthesis, constraints and unification, debugging and verification, and program transformation.
Computer Architecture Techniques for Power-efficiency
Author: Stefanos Kaxiras
Publisher: Morgan & Claypool Publishers
ISBN: 1598292080
Category : Computers
Languages : en
Pages : 220
Book Description
In the last few years, power dissipation has become an important design constraint, on par with performance, in the design of new computer systems. Whereas in the past, the primary job of the computer architect was to translate improvements in operating frequency and transistor count into performance, now power efficiency must be taken into account at every step of the design process. While for some time, architects have been successful in delivering 40% to 50% annual improvement in processor performance, costs that were previously brushed aside eventually caught up. The most critical of these costs is the inexorable increase in power dissipation and power density in processors. Power dissipation issues have catalyzed new topic areas in computer architecture, resulting in a substantial body of work on more power-efficient architectures. Power dissipation coupled with diminishing performance gains, was also the main cause for the switch from single-core to multi-core architectures and a slowdown in frequency increase. This book aims to document some of the most important architectural techniques that were invented, proposed, and applied to reduce both dynamic power and static power dissipation in processors and memory hierarchies. A significant number of techniques have been proposed for a wide range of situations and this book synthesizes those techniques by focusing on their common characteristics.
Publisher: Morgan & Claypool Publishers
ISBN: 1598292080
Category : Computers
Languages : en
Pages : 220
Book Description
In the last few years, power dissipation has become an important design constraint, on par with performance, in the design of new computer systems. Whereas in the past, the primary job of the computer architect was to translate improvements in operating frequency and transistor count into performance, now power efficiency must be taken into account at every step of the design process. While for some time, architects have been successful in delivering 40% to 50% annual improvement in processor performance, costs that were previously brushed aside eventually caught up. The most critical of these costs is the inexorable increase in power dissipation and power density in processors. Power dissipation issues have catalyzed new topic areas in computer architecture, resulting in a substantial body of work on more power-efficient architectures. Power dissipation coupled with diminishing performance gains, was also the main cause for the switch from single-core to multi-core architectures and a slowdown in frequency increase. This book aims to document some of the most important architectural techniques that were invented, proposed, and applied to reduce both dynamic power and static power dissipation in processors and memory hierarchies. A significant number of techniques have been proposed for a wide range of situations and this book synthesizes those techniques by focusing on their common characteristics.