making_compiler_design_relevant_for_students

In this first entry in the Compilers course blog, I was tasked with reading an article focused on How is Compiler Design relevant for students, given that we might not use it further down the line. First off, even though I don't think I'll be doing this ever again,  I am personally open to exploring the many fields in Computer Science, just for the sake of it.
In the article itself, the author recognizes that students might not necesarilly have to translate a high-level language into machine code. No kidding, I don't know much about work but I'm sure not many companies have that encompassed within their priorities. 
The article describes the necessary phases to create a compiler. Lexical analysis, semantic analysis, Code generation, and optimization. Surely we will have to do the same during the course. It seems pretty daunting, stages of a compiler, more like stages of grief (he he). 

Despite all the doom and gloom, I believe that learning how to create a compiler will help when dealing with implementing functionality to a language. In the end, I don't think we'll end up seeing exactly how code communicates with the computer's hardware. What I think wil happen, however, is that we'll learn about the steps of parsing text, identifying it's errors, and eventually transforming it into information that can then be re-interpreted. Shall I dare say that it's a form of webscraping, but more like "codescraping"? Now that I think about it, if it does work in this way, then maybe in a software engineering job we'll know how to scrape information from documents better.

That last part doesn't really do the course any justice. Let me rephrase it: By learning how to develop a compiler, even though it may seem unnecessary, we will adquire the necessary skills to excel at data manipulation, code translation and overall, it will be an additional tool in our CompSci arsenal. I'm pretty sure Debray and I (that rhymed) have come to the same conclusion.

Comments