Aho, Alfred V., John E. Hopcroft, and Jeffrey D. Ullman