Results 1 - 10
of
49
Discovering Algebraic Specifications from Java Classes
- In ECOOP
, 2003
"... We present and evaluate an automatic tool for extracting algebraic specifications from Java classes. Our tool maps a Java class to an algebraic signature and then uses the signature to generate a large number of terms. The tool evaluates these terms and based on the results of the evaluation, it pro ..."
Abstract
-
Cited by 68 (4 self)
- Add to MetaCart
We present and evaluate an automatic tool for extracting algebraic specifications from Java classes. Our tool maps a Java class to an algebraic signature and then uses the signature to generate a large number of terms. The tool evaluates these terms and based on the results of the evaluation, it proposes equations. Finally, the tool generalizes equations to axioms and eliminates many redundant axioms. Since our tool uses dynamic information, it is not guaranteed to be sound or complete. However, we manually inspected the axioms generated in our experiments and found them all to be correct.
Logic Program Synthesis from Incomplete Specifications
- JOURNAL OF SYMBOLIC COMPUTATION: SPECIAL ISSUE ON AUTOMATIC PROGRAMMING
, 1993
"... ..."
Acquiring Recursive and Iterative Concepts with Explanation-Based Learning
- Machine Learning
, 1989
"... In explanation-based learning, a specific problem's solution is generalized into a form that can be later used to solve conceptually similar problems. Most research in explanation-based learning involves relaxing constraints on the variables in the explanation of a specific example, rather than gene ..."
Abstract
-
Cited by 39 (1 self)
- Add to MetaCart
In explanation-based learning, a specific problem's solution is generalized into a form that can be later used to solve conceptually similar problems. Most research in explanation-based learning involves relaxing constraints on the variables in the explanation of a specific example, rather than generalizing the graphical structure of the explanation itself. However, this precludes the acquisition of concepts where an iterative or recursive process is implicitly represented in the explanation by a fixed number of applications. This paper presents an algorithm that generalizes explanation structures and reports empirical results that demonstrate the value of acquiring recursive and iterative concepts. The BAGGER2 algorithm learns recursive and iterative concepts, integrates results from multiple examples, and extracts useful subconcepts during generalization. On problems where learning a recursive rule is not appropriate, the system produces the same result as standard explanation-based ...
Inductive Synthesis of Recursive Logic Programs
, 1997
"... The inductive synthesis of recursive logic programs from incomplete information, such as input/output examples, is a challenging subfield both of ILP (Inductive Logic Programming) and of the synthesis (in general) of logic programs from formal specifications. We first overview past and present achie ..."
Abstract
-
Cited by 27 (8 self)
- Add to MetaCart
The inductive synthesis of recursive logic programs from incomplete information, such as input/output examples, is a challenging subfield both of ILP (Inductive Logic Programming) and of the synthesis (in general) of logic programs from formal specifications. We first overview past and present achievements, focusing on the techniques that were designed specifically for the inductive synthesis of recursive logic programs, but also discussing a few general ILP techniques that can also induce non-recursive hypotheses. Then we analyse the prospects of these techniques in this task, investigating their applicability to software engineering as well as to knowledge acquisition and discovery.
Programming by Demonstration: a Machine Learning Approach
, 2001
"... Programming by demonstration (PBD) enables users to construct programs to automate repetitive tasks without writing a line of code. The key idea in PBD is to generalize from the user's demonstration of the program on a concrete example to a robust program that will work in new situations. Previous a ..."
Abstract
-
Cited by 15 (0 self)
- Add to MetaCart
Programming by demonstration (PBD) enables users to construct programs to automate repetitive tasks without writing a line of code. The key idea in PBD is to generalize from the user's demonstration of the program on a concrete example to a robust program that will work in new situations. Previous approaches to PBD have employed heuristic, domain-specific algorithms to generalize from a small number of examples. In this thesis, we formalize programming by demonstration as a machine learning problem: given the changes in the application state that result from the user's demonstrated actions, learn the sequence of instructions that map from one application state to the next. We propose a domain-independent machine learning approach to PBD that is capable of learning useful programs from a small number of examples. This approach addresses two difficult questions: (1) How do we construct the search space of possible program statements? (2) How do we search this large space efficiently? Our solution is based on the concept of version space algebra. Mitchell [55] formalized concept learning as a search through a version space of hypotheses consistent with the examples. Concept learning may be thought of as learning functions that map from an instance to a binary classification. In this work, we extend version spaces to apply to complex functions: functions that map from one complex object to another. We then present version space algebra, a means for combining several small spaces in order to construct complex version s...
Induction of Recursive Program Schemes
- In Proceedings of the 10th European Conference on Machine Learning (ECML-98
, 1998
"... . In this paper we present an approach to the induction of recursive structures from examples which is based on the notion of recursive program schemes. We separate induction from examples in two stages: (1) constructing initial programs from examples and (2) folding initial programs to recursiv ..."
Abstract
-
Cited by 15 (14 self)
- Add to MetaCart
. In this paper we present an approach to the induction of recursive structures from examples which is based on the notion of recursive program schemes. We separate induction from examples in two stages: (1) constructing initial programs from examples and (2) folding initial programs to recursive program schemes. By this separation, the induction of recursive program schemes can be reduced to a pattern-matching problem which can be handled by a generic algorithm. Construction of initial programs is performed with an approach to universal planning. "Background knowledge" is given in the form of operators and their conditions of application. Furthermore synthesizing recursive program schemes instead of programs in a predefined programming language enables us to combine program synthesis and analogical reasoning. A recursive program scheme represents the class of structural identical programs and can be assigned different semantics by interpretation. We believe that our appr...
On the Use of Inductive Reasoning in Program Synthesis: Prejudice and Prospects
- IN L. FRIBOURG AND F. TURINI (EDS), JOINT PROC. OF META'94 AND LOPSTR'94
, 1994
"... In this position paper, we give a critical analysis of the deductive and inductive approaches to program synthesis, and of the current research in these fields. From the shortcomings of these approaches and works, we identify future research directions for these fields, as well as a need for coopera ..."
Abstract
-
Cited by 13 (6 self)
- Add to MetaCart
In this position paper, we give a critical analysis of the deductive and inductive approaches to program synthesis, and of the current research in these fields. From the shortcomings of these approaches and works, we identify future research directions for these fields, as well as a need for cooperation and cross-fertilization between them.
Towards Stepwise, Schema-Guided Synthesis of Logic Programs
- LOGIC PROGRAM SYNTHESIS AND TRANSFORMATION
, 1991
"... We present a general strategy for stepwise, sound and progressive synthesis of logic programs from specifications by examples and properties. We particularize this to schema-guided synthesis, and state a generic synthesis theorem. We justify some design choices for the development of a particular sy ..."
Abstract
-
Cited by 13 (4 self)
- Add to MetaCart
We present a general strategy for stepwise, sound and progressive synthesis of logic programs from specifications by examples and properties. We particularize this to schema-guided synthesis, and state a generic synthesis theorem. We justify some design choices for the development of a particular synthesis mechanism that is guided by a Divide-and-Conquer schema, is inductive and deductive, is interactive, and features a non-incremental presentation of examples. Some crucial steps of this mechanism are explained, and illustrated by a sample synthesis. We draw some conclusions on our results so far, state some related work, and outline future research directions.
Oracle-Guided Component-Based Program Synthesis
"... We present a novel approach to automatic synthesis of loopfree programs. The approach is based on a combination of oracle-guided learning from examples, and constraint-based synthesis from components using satisfiability modulo theories (SMT) solvers. Our approach is suitable for many applications, ..."
Abstract
-
Cited by 13 (10 self)
- Add to MetaCart
We present a novel approach to automatic synthesis of loopfree programs. The approach is based on a combination of oracle-guided learning from examples, and constraint-based synthesis from components using satisfiability modulo theories (SMT) solvers. Our approach is suitable for many applications, including as an aid to program understanding tasks such as deobfuscating malware. We demonstrate the efficiency and effectiveness of our approach by synthesizing bitmanipulating programs and by deobfuscating programs. Categories and Subject Descriptors
Therapy Plan Generation as Program Synthesis
- In Setsuo Arikawa and K.P. Jantke, editors, Algorithmic Learning Theory, AII'94 & ALT'94, volume 872 of LNAI
, 1994
"... . There has been developed and implemented an algorithm for the automatic synthesis of therapy plans for complex dynamic systems. This algorithm is the core of some control synthesis module which is embedded in a larger knowledge-based system for control, diagnosis and therapy. There are several app ..."
Abstract
-
Cited by 12 (10 self)
- Add to MetaCart
. There has been developed and implemented an algorithm for the automatic synthesis of therapy plans for complex dynamic systems. This algorithm is the core of some control synthesis module which is embedded in a larger knowledge-based system for control, diagnosis and therapy. There are several applications. The planning algorithm may be understood as an inductive program synthesis procedure. Its fundamentals are introduced and its key ideas are sketched. The dichotomy between executability and consistency is investigated. 1 Motivation and Introduction The main intention of the present paper is to establish a new link between two areas of research: Program Synthesis and Therapy Planning. Thus, the authors wish to advance both areas of research they are active in. For program synthesis, the intended integration may result in new and exciting problems characterized by particular constraints not investigated in the classical approaches, so far. Our approach may widen the view at automat...

