Author: Richard Stanley Aho