The article shown for this entry talks about how many of the
students taking CS courses won’t likely care for a compiler design course,
because it is considered a narrow area of knowledge. It then proceeds to make a
point about other problems that can be benefitted from the techniques and
technologies of Compiler Design.
As I have mentioned before, I am very curious about this
class and what I may learn here. A reason for this is because, even after 3
years of studying Programming, Software Engineering and even Operative Systems,
I still don’t have a good idea about how a compiler takes some words written by
me and transform them into a bunch of machine code that I can’t understand.
This lack of knowledge has made me believe that maybe compilers take some kind
of very special techniques or perspectives that just aren’t that common in the
software industry. In other words, I had, more or less, the same stance as the
students the article talks about.
Something about that opinion changed in the last few months.
This is because I have faced or learnt about some cases in which compilers have
been used in unexpected ways, at least for me. The first comes from one of my
best friends, which went to work at Google a few months ago. He told me that he
began working on a compiler that is widely used within the company for testing
purposes on the C++ language. They like to try several features or practices
that may make code go faster or generate machine code in a more intelligent
way. The other situation has been at my own work. A project within the company
involves taking literal code and finding practices that do not conform to the
quality standards of the company, among other things. This involves a process
very similar to the lexical and semantical analysis of a traditional compiler.
I wholeheartedly agree with the article and its take on just
how common compiler design is in our world.