Making Compiler Design Relevant for Students

Today I will talk about the article titled “Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler”. Basically, the author talks about the principles, techniques, and tools used during compiler design courses and how those aspects are applicable to a great variety of situations that aren’t exactly considered as compiler design.

He mentions different processes that take place through the compilation beginning with the lexical analysis, it explains the compiler goes character by character recognizing all the special chars. This process is really expensive, therefore there are a lot of processes and methods to make this a more efficient and fast work.

Then it all goes through the syntax process, where it is all further processed and recognized as words or phrases which are used to understand the code. Regular expressions are particularly useful in this phase.

Then comes the more complex semantic phase, where according to the grammar specifications the compiler must give a meaning and order to the words recognized in the syntax process.

It all generates into code, taking special care of reserved words and typos that help the compiler understand the behaviour of the code and the expected outcome, and finally goes through an optimization process to have the least amount of code, memory used, and processes created.

I found this article really interesting, because it has the power, by telling the truth about the situation and a really well explained compiler's design, to make an undergraduate student interested and excited about this course. At the end that’s the point, learning from a course, but more importantly knowing how and when to apply that knowledge or how is it going to be useful in their professional life.

Comentarios

Entradas populares de este blog

Building Server-Side Web Language Processors

Ruby and the Interpreter Pattern

The Hundred-Year Language