Making Compiler Design Relevant for students who will never Design a Compiler

 Hello everyone, hope everything is going well for you and your families. I got to say, I wasn't very happy about taking this class (Compiler Design), mainly because I had the mentality that  the knowledge of the class in any way was going to be useful in my personal or professional life,  because I do not have any plans of developing a compiler in any way. 

Today we start with a fascinating article, Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler, by Saumya DebrayIt really excited me about the class, because I now can see how useful the knowledge (that I hope I can learn and understand)  of this course is. the other way I see the class like a culmination of all the things that I had learned throughout the hole Software engineering career.  Understanding the core functionalities of a compiler is going to help all of us to tackle some other problem o creating something super cool (Like LaTeX, that it is a compiler).

This article was an amazing introduction  of what are the main processes of a compiler:

  1. Lexical analysis: 
    1. Process of examining the input and dividing it into groups of adjacent characters, called "tokens"
  2. Semantic analysis:
    1. Computation and propagation of information that is not part of the context-free syntax of the language.
  3. Code generation
    1.  Process of traversing the tree representation of a program to generate assembly or machine code for the target machine.
  4. Code optimization
    1. Reduce the "cost" of the generated code.
And it also gave me the belief that Compiler Design is useful for multiple areas, including non programming stuff. 
I'm looking forward to facing this challenge and encounter in my professional career a way to apply all this knowledge and keep getting better at being a software engineer.

Comments

Popular posts from this blog

Mother of Compilers

The Hundred-Year Language

The last ride