Learning the language of software errors

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 functi...

Full description

Bibliographic Details
Main Authors: Chockler, H, Kesseli, P, Kroenig, D, Strichman, O
Format: Journal article
Language:English
Published: AI Access Foundation 2020
_version_ 1826293031911817216
author Chockler, H
Kesseli, P
Kroenig, D
Strichman, O
author_facet Chockler, H
Kesseli, P
Kroenig, D
Strichman, O
author_sort Chockler, H
collection OXFORD
description 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.
first_indexed 2024-03-07T03:23:50Z
format Journal article
id oxford-uuid:b859db0c-a3a3-496a-8160-1ea1a5fe21b5
institution University of Oxford
language English
last_indexed 2024-03-07T03:23:50Z
publishDate 2020
publisher AI Access Foundation
record_format dspace
spelling oxford-uuid:b859db0c-a3a3-496a-8160-1ea1a5fe21b52022-03-27T04:55:17ZLearning the language of software errorsJournal articlehttp://purl.org/coar/resource_type/c_dcae04bcuuid:b859db0c-a3a3-496a-8160-1ea1a5fe21b5EnglishSymplectic ElementsAI Access Foundation2020Chockler, HKesseli, PKroenig, DStrichman, OWe 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.
spellingShingle Chockler, H
Kesseli, P
Kroenig, D
Strichman, O
Learning the language of software errors
title Learning the language of software errors
title_full Learning the language of software errors
title_fullStr Learning the language of software errors
title_full_unstemmed Learning the language of software errors
title_short Learning the language of software errors
title_sort learning the language of software errors
work_keys_str_mv AT chocklerh learningthelanguageofsoftwareerrors
AT kesselip learningthelanguageofsoftwareerrors
AT kroenigd learningthelanguageofsoftwareerrors
AT strichmano learningthelanguageofsoftwareerrors