  Several new algorithms for deciding emptiness of Boolean combinations of
regular languages and of languages of alternating automata (AFA) have been
proposed recently, especially in the context of analysing regular expressions
and in string constraint solving. The new algorithms demonstrated a significant
potential, but they have never been systematically compared, neither among each
other nor with the state-of-the art implementations of existing
(non)deterministic automata-based methods. In this paper, we provide the first
such comparison as well as an overview of the existing algorithms and their
implementations. We collect a diverse benchmark mostly originating in or
related to practical problems from string constraint solving, analysing LTL
properties, and regular model checking, and evaluate collected implementations
on it. The results reveal the best tools and hint on what the best algorithms
and implementation techniques are. Roughly, although some advanced algorithms
are fast, such as antichain algorithms and reductions to IC3/PDR, they are not
as overwhelmingly dominant as sometimes presented and there is no clear winner.
The simplest NFA-based technology may be actually the best choice, depending on
the problem source and implementation style. Our findings should be highly
relevant for development of these techniques as well as for related fields such
as string constraint solving.
