They are good books. (I started the first one when writing a compiler).
The valid criticisms of them relate to improvements in parsing, and in optimization, which has progressed significantly in the years that they were written.
Fun fact: On the compiler we wrote, Jeanne Musinski PhD, a student of Ullman was on our team. She wrote the parser, and actually discovered an improvement in error recovery during our project and published a paper after conferring with Ullman.
The valid criticisms of them relate to improvements in parsing, and in optimization, which has progressed significantly in the years that they were written.
Fun fact: On the compiler we wrote, Jeanne Musinski PhD, a student of Ullman was on our team. She wrote the parser, and actually discovered an improvement in error recovery during our project and published a paper after conferring with Ullman.