Formal Languages and Books
I’ve read two books in the last days. Both are related to Formal Languages, Automata Theory and Compilers. This will be another review article.
Of course, the first book is the famous Purple «Dragon Book»: «Compilers: Principles, Techniques, and Tools» by Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. An interesing lecture about compilers explaining everything related to their construction and their internals. Though I skimmed a big part of the book (being interested in only several chapters for now), I know that I will find there almsot everything I need if I want to build a compiler. And this is what I have to do: to build a compiler in Python for the Verilog language, before even taking the class dedicated to compilers. I will post several articles as I work on it.
Nevertheless, things are somehow easier in python, because of its modules who are doing a lot of job behind the scene making everything to run smoother. However, understanding Formal Languages and Automata Theory is still a must. Luckily, I took this course in the past semester and I got very addicted to it. Expect to see some more posts related to this in future.
It was that course and that attraction which led me to read the second book (in fact, the first one from the two if we sort them by the date I’ve finished reading them). this time, I’ve read it completely. It is the «Cinderella Book», «Introduction to Automata Theory, Languages, and Computation» by John Hopcroft and the same Jeffrey D. Ullman. Starting with the Finite Automaton and going toward the Turing Machine and computational topics such as decidability and complexity, this book is a must read for every one in the IT. Explaining everything as simple as possible, giving simple and hard exercises, some of them really blowing one’s mind, the authors of this book have done something really remarkable.
I’ll be leaving now. I have to expand the Strange Turing Machine from the last post, to write that Verilog compiler, to learn for the next exam and, maybe, do some other personal projects. I’ll be back.