> Prolog and Lisp were the two languages we were forbidden to use in compiler design project, as it was considered "cheating" versus using something harder like C.
"Cheating"? Smells like a chance for the revenge of the pattern-matching metacompiler!