Learning the Language of Software Errors
Author(s) -
Hana Chockler,
Pascal Kesseli,
Daniel Kroening,
Ofer Strichman
Publication year - 2020
Publication title -
journal of artificial intelligence research
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.79
H-Index - 123
eISSN - 1943-5037
pISSN - 1076-9757
DOI - 10.1613/jair.1.11798
Subject(s) - computer science , büchi automaton , theoretical computer science , automaton , deterministic automaton , probabilistic automaton , representation (politics) , two way deterministic finite automaton , abstraction , finite state machine , software , deterministic finite automaton , alphabet , artificial intelligence , programming language , nondeterministic finite automaton , algorithm , automata theory , philosophy , linguistics , epistemology , politics , political science , law
We propose to use algorithms for learning deterministic finite automata (DFA), such as Angluin’s L∗ algorithm, for learning a DFA that describes the possible scenarios under which a given program error occurs. The alphabet of this automaton is given by the user (for instance, a subset of the function call sites or branches), and hence the automaton describes a user-defined abstraction of those scenarios. More generally, the same technique can be used for visualising the behavior of a program or parts thereof. It can also be used for visually comparing different versions of a program (by presenting an automaton for the behavior in the symmetric difference between them), and for assisting in merging several development branches. We present experiments that demonstrate the power of an abstract visual representation of errors and of program segments, accessible via the project’s web page. In addition, our experiments in this paper demonstrate that such automata can be learned efficiently over real-world programs. We also present lazy learning, which is a method for reducing the number of membership queries while using L∗, and demonstrate its effectiveness on standard benchmarks.
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom