Results 1  10
of
25
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 86 (4 self)
 Add to MetaCart
(Show Context)
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.
Inductive Functional Programming Using Incremental Program Transformation
, 1995
"... ion : : : : : : : : : : : : : : : : : : : : : : : : : : 45 4.1.3 casedistribution : : : : : : : : : : : : : : : : : : : : : : : 46 4.1.4 Embedding : : : : : : : : : : : : : : : : : : : : : : : : : : 49 4.2 Atomic Transformation Algorithms : : : : : : : : : : : : : : : : : 53 4.2.1 The R Transforma ..."
Abstract

Cited by 83 (3 self)
 Add to MetaCart
(Show Context)
ion : : : : : : : : : : : : : : : : : : : : : : : : : : 45 4.1.3 casedistribution : : : : : : : : : : : : : : : : : : : : : : : 46 4.1.4 Embedding : : : : : : : : : : : : : : : : : : : : : : : : : : 49 4.2 Atomic Transformation Algorithms : : : : : : : : : : : : : : : : : 53 4.2.1 The R Transformation Algorithm : : : : : : : : : : : : : : 55 4.2.2 The REQ Transformation Algorithm : : : : : : : : : : : : 58 4.2.3 The ABSTR Transformation Algorithm : : : : : : : : : : 67 4.2.4 The CASEDIST Transformation Algorithm : : : : : : : : 70 4.2.5 The EMB Transformation Algorithm : : : : : : : : : : : : 80 5 Expression Synthesis 87 5.1 Description of the Expression Synthesis Problem and Its Complexity : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 87 5.2 Expression Synthesis in ADATE : : : : : : : : : : : : : : : : : : 88 5.2.1 The Interface to Expression Synthesis : : : : : : : : : : : 88 5.2.2 A Simplified Implementation of synt n : : : : : : : : : : 92 5.2.3 Restricti...
Acquiring Recursive and Iterative Concepts with ExplanationBased Learning
 Machine Learning
, 1989
"... In explanationbased learning, a specific problem's solution is generalized into a form that can be later used to solve conceptually similar problems. Most research in explanationbased learning involves relaxing constraints on the variables in the explanation of a specific example, rather than ..."
Abstract

Cited by 51 (1 self)
 Add to MetaCart
(Show Context)
In explanationbased learning, a specific problem's solution is generalized into a form that can be later used to solve conceptually similar problems. Most research in explanationbased 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 explanationbased ...
Discovering documentation for java container classes
 IEEE Transactions on Software Engineering
, 2007
"... Modern programs make extensive use of reusable software libraries. For example, we found that 17 % to 30 % of the classes in a number of large Java applications use the container classes from the java.util package. Given this extensive code reuse in Java programs, it is important for the reusable in ..."
Abstract

Cited by 31 (1 self)
 Add to MetaCart
(Show Context)
Modern programs make extensive use of reusable software libraries. For example, we found that 17 % to 30 % of the classes in a number of large Java applications use the container classes from the java.util package. Given this extensive code reuse in Java programs, it is important for the reusable interfaces to have clear and unambiguous documentation. Unfortunately, most documentation is expressed in English, and therefore does not always satisfy these requirements. Worse yet, there is no way of checking that the documentation is consistent with the associated code. Formal specifications present an alternative which does not suffer from these problems; however, formal specifications are notoriously hard to write. To alleviate this difficulty, we have implemented a tool which automatically derives documentation in the form of formal specifications. Our tool probes Java classes by invoking them on dynamically generated tests and captures the information observed during their execution as algebraic axioms. While the tool is not complete or correct from a formal perspective we demonstrate that it discovers many useful axioms when applied to container classes. These axioms then form an initial formal documentation of the class they describe. 1
An Algorithm that Infers Theories from Facts
 In Proceedings of the Seventh International Joint Conference on Artificial Intelligence
, 1981
"... A framework for inductive inference in logic is presented: a Model Inference Problem is defined, and it is shown that problems of machine learning and program synthesis from examples can be formulated naturally as model inference problems. A general, incremental inductive inference algorithm for sol ..."
Abstract

Cited by 25 (0 self)
 Add to MetaCart
A framework for inductive inference in logic is presented: a Model Inference Problem is defined, and it is shown that problems of machine learning and program synthesis from examples can be formulated naturally as model inference problems. A general, incremental inductive inference algorithm for solving model inference problems is developed. This algorithm is based on Popper's methodology of conjectures and refutations [ I I]. The algorithm can be shown to identify in the limit [3] any model in a family of complexity classes of models, is most powerful of its kind, and is flexible enough to have been successfully implemented for several concrete domains. The Model Inference System is a Prolog
A Learnability Model for Universal Representations
 PROCEEDINGS OF THE 4TH INTERNATIONAL WORKSHOP ON INDUCTIVE LOGIC PROGRAMMING
, 1997
"... This paper defines a new computational model of inductive learning, called Ulearnability (Universal Learnability), that is wellsuited for rich representation languages, most notably for universal (Turing equivalent) representations. It is motivated by three observations. Firstly, existing computa ..."
Abstract

Cited by 23 (6 self)
 Add to MetaCart
This paper defines a new computational model of inductive learning, called Ulearnability (Universal Learnability), that is wellsuited for rich representation languages, most notably for universal (Turing equivalent) representations. It is motivated by three observations. Firstly, existing computational models of inductive learningthe best known of which are identification in the limit and PAClearnabilityeither fail to provide guarantees of accuracy and computational efficiency or require severely restricted representation languages. Secondly, practical machine learning programs use rich representations yet often perform efficiently and achieve high degrees of accuracy. Thirdly, these machine learning programs often make assumptions about the underlying probability distribution over target concepts; such an assumption provides a soft bias for learning. This contrasts with existing computational models of inductive learning, which incorporate only language biases, or hard bias...
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 16 (6 self)
 Add to MetaCart
(Show Context)
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 crossfertilization between them.
Inductive Programming A Survey of Program Synthesis Techniques
"... Inductive programming—the use of inductive reasoning methods for programming, algorithm design, and software development—is a currently emerging research field. A major subfield is inductive program synthesis, the (semi)automatic construction of programs from exemplary behavior. Inductive program s ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
(Show Context)
Inductive programming—the use of inductive reasoning methods for programming, algorithm design, and software development—is a currently emerging research field. A major subfield is inductive program synthesis, the (semi)automatic construction of programs from exemplary behavior. Inductive program synthesis is not a unified research field until today but scattered over several different established research fields such as machine learning, inductive logic programming, genetic programming, and functional programming. This impedes an exchange of theory and techniques and, as a consequence, a progress of inductive programming. In this paper we survey theoretical results and methods of inductive program synthesis that have been developed in different research fields until today. 1.
Inferring Flow of Control in Program Synthesis by Example
"... . We present a supervised, interactive learning technique that infers control structures of computer programs from userdemonstrated traces. A twostage process is applied: #rst, a minimal deterministic # nite automaton #DFA# M labeled by the instructions of the program is learned from a set of ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
. We present a supervised, interactive learning technique that infers control structures of computer programs from userdemonstrated traces. A twostage process is applied: #rst, a minimal deterministic # nite automaton #DFA# M labeled by the instructions of the program is learned from a set of example traces and membership queries to the user. It accepts all pre#xes of traces of the target program. The number of queries is bounded by O#k #jMj#, with k being the total number of instructions in the initial example traces. In the second step we parse this automaton into a highlevel programming language in O#jM j 2 # steps, replacing jumps by conditional control structures. 1