  A prefix normal word is a binary word with the property that no substring has
more $1$s than the prefix of the same length. By proving that the set of prefix
normal words is a bubble language, we can exhaustively list all prefix normal
words of length $n$ as a combinatorial Gray code, where successive strings
differ by at most two swaps or bit flips. This Gray code can be generated in
$\Oh(\log^2 n)$ amortized time per word, while the best generation algorithm
hitherto has $\Oh(n)$ running time per word. We also present a membership
tester for prefix normal words, as well as a novel characterization of bubble
languages.
