Making Compiler Design Relevant for Students


It’s true that almost nobody will be a compiler designer or developer. So, what is the importance for a computer science student to take the compiler design course? There are more about than the compiler itself. The techniques that we learn in this course could be applied in many ways. Although the objective of the course is to learn how to translate high level language into low level assembly or machine code, we can use the basics and principles of the 4 compiler phases to do more than a compiler, which involves: Lexical Analysis, Semantic Analysis, Code Generation and Optimization. One of the examples that author of  “Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler” gives is to make a translator from LaTex to HTML. Indeed, I had a related experience. I started working about 7 months ago, and one of my first tasks was to make a parser that receives a SQL file and outputs a PHP file with the corresponding SQL instructions using Laravel models. In that moment it was a little bit difficult to think how to map the SQL instructions into Php code. So, with the reading I realize that the techniques that we will be learning along the course could help to accomplish that task more efficient and professional. I think that designing a compiler should teach you not only how to translate from one programming language to another, but it teaches you how to solve parsing problems. There are a lot of problems where we have a string as input and we have to extract tokens and analyze them to give an output. Then, I’m strongly agree that despite of we are not going to be compiler designers, it is the backbone that we have to have, in order to earn powerful tools to resolve problems, not only compilers.

Comentarios

Entradas más populares de este blog

About me

Ruby and the Interpreter Pattern

The Hundred-Year Language