Making Compiler Design Relevant for Students

Hello, this is the first blog for my Compilers Design course. This entry is going to talk about an article titled: "Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler", by Saumya Debray. 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.  

First of all, it introduces the article telling us that that Compiler design courses are part of the bases courses imparted to a Computer Science undergraduate at most universities. But the problem is that students didn’t get interested in applying those courses for a real compiler implementation and they are aware of this as they don’t consider that course as relevant. They prefer or think that operating systems or networking courses are better for them. I really felt identified with this argument, because before reading this, I had no interest in learning something that I would never apply or use later in my life.Then the author mentioned interesting things like translation problems, translation process and phases of a compiler brief explanation of each compiler design phase: 

-      Lexical analysis and parsing.
-      Semantic analysis.
-      Code generation.
-      Code Optimization.

The author concludes telling us how typically the Compiler design courses are focusing on translating high-level programming languages into low-level assembly or even machine code and that students would be benefited by getting a deeper understanding of a variety of translation problems and being able to apply learned techniques and tools from those courses in order for producing a better code in a quick way. And that was exactly what caught me, I really want to be able to produce better code in a quick way. Maybe this course is going to be hard, but I think the knowledge I will adquire will be very helpful.

I found this article really interesting, because it has the power, by telling the truth about the situation and a really well explanation about compilers 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 important know how and when to apply that knowledge or how is it going to be useful in their professional life.

Comments

Popular posts from this blog

Ruby and the Interpreter Pattern

The Hitchhiker’s Guide to the Galaxy

Technical Overview of the CLR