Domain Specific Program Synthesis

Author(s):  
P Archana ◽  
P B Harish ◽  
Navneetha Rajan ◽  
Sparsha P ◽  
N S Kumar
2020 ◽  
Vol 34 (04) ◽  
pp. 5462-5469
Author(s):  
Goutham Ramakrishnan ◽  
Yun Chan Lee ◽  
Aws Albarghouthi

When a model makes a consequential decision, e.g., denying someone a loan, it needs to additionally generate actionable, realistic feedback on what the person can do to favorably change the decision. We cast this problem through the lens of program synthesis, in which our goal is to synthesize an optimal (realistically cheapest or simplest) sequence of actions that if a person executes successfully can change their classification. We present a novel and general approach that combines search-based program synthesis and test-time adversarial attacks to construct action sequences over a domain-specific set of actions. We demonstrate the effectiveness of our approach on a number of deep neural networks.


Author(s):  
Christopher D. Rosin

Inductive program synthesis, from input/output examples, can provide an opportunity to automatically create programs from scratch without presupposing the algorithmic form of the solution. For induction of general programs with loops (as opposed to loop-free programs, or synthesis for domain-specific languages), the state of the art is at the level of introductory programming assignments. Most problems that require algorithmic subtlety, such as fast sorting, have remained out of reach without the benefit of significant problem-specific background knowledge. A key challenge is to identify cues that are available to guide search towards correct looping programs. We present MAKESPEARE, a simple delayed-acceptance hillclimbing method that synthesizes low-level looping programs from input/output examples. During search, delayed acceptance bypasses small gains to identify significantly-improved stepping stone programs that tend to generalize and enable further progress. The method performs well on a set of established benchmarks, and succeeds on the previously unsolved “Collatz Numbers” program synthesis problem. Additional benchmarks include the problem of rapidly sorting integer arrays, in which we observe the emergence of comb sort (a Shell sort variant that is empirically fast). MAKESPEARE has also synthesized a record-setting program on one of the puzzles from the TIS100 assembly language programming game.


Author(s):  
Akos Ledeczi ◽  
Miklos Matoti ◽  
Peter Volgyesi

This chapter introduces the concepts and techniques required for developing graphical, domain-specific modeling and program synthesis environments. It argues that a fully functional modeling environment can be quickly developed for a wide variety of engineering domains using a configurable and extensible toolset with a limited set of generic concepts. The configuration is accomplished through metamodels specifying the modeling language and methodology containing all syntactic, semantic and presentation information of the domain. The authors applied this approach to several real-world systems.


Author(s):  
Lukas Renggli ◽  
Stéphane Ducasse ◽  
Tudor Gîrba ◽  
Oscar Nierstrasz

Author(s):  
Lei Shi ◽  
Yahui Li ◽  
Boon Thau Loo ◽  
Rajeev Alur

AbstractWriting classification rules to identify interesting network traffic is a time-consuming and error-prone task. Learning-based classification systems automatically extract such rules from positive and negative traffic examples. However, due to limitations in the representation of network traffic and the learning strategy, these systems lack both expressiveness to cover a range of applications and interpretability in fully describing the traffic’s structure at the session layer. This paper presents Sharingan system, which uses program synthesis techniques to generate network classification programs at the session layer. Sharingan accepts raw network traces as inputs and reports potential patterns of the target traffic in NetQRE, a domain specific language designed for specifying session-layer quantitative properties. We develop a range of novel optimizations that reduce the synthesis time for large and complex tasks to a matter of minutes. Our experiments show that Sharingan is able to correctly identify patterns from a diverse set of network traces and generates explainable outputs, while achieving accuracy comparable to state-of-the-art learning-based systems.


Author(s):  
Loris D’Antoni ◽  
Qinheping Hu ◽  
Jinwoo Kim ◽  
Thomas Reps

AbstractProgram synthesis is now a reality, and we are approaching the point where domain-specific synthesizers can now handle problems of practical sizes. Moreover, some of these tools are finding adoption in industry. However, for synthesis to become a mainstream technique adopted at large by programmers as well as by end-users, we need to design programmable synthesis frameworks that (i) are not tailored to specific domains or languages, (ii) enable one to specify synthesis problems with a variety of qualitative and quantitative objectives in mind, and (iii) come equipped with theoretical as well as practical guarantees. We report on our work on designing such frameworks and on building synthesis engines that can handle program-synthesis problems describable in such frameworks, and describe open challenges and opportunities.


Sign in / Sign up

Export Citation Format

Share Document