Making Compiler Design Relevant for Students


I had never thought about compilers as something I did not need or I could skip, but neither as something whose implementation techniques could be adapted and applied to be useful to solve challenges in other areas of programming.
In this I believe that the paper is right: we students consider compilers as an isolated topic and fail to see how the techniques used by them can be used in a day to day basis. Also, I had no idea that such similar applications were that common. Now in retrospective, I can see how a similar problem solving could be applied to create useful tools, such as graph and math problem solving web pages like desmos and symbolab, or apps to take notes that convert what the user handwrites into text like this one, and I was left wondering if those who developed them used similar techniques to the ones we will see in this course.
Another thing the paper got right is that it is easier to explain and understand the phases of compilers and the overall concept with related examples and by looking them as translators. Also, the approach it took to explain how we can encounter similar concepts that require the techniques and explaining how each step or part of the problem could be mapped to a compilers phase made them easier to understand. That way, it is harder to lose track when they are explaining to you the semantic analysis and how the tree is interpreted or the part that FSAs and regular expressions play in the process, since we do not get compilers explained in other courses and we tend to think about them as something, like Debray said, we will not be doing anytime soon. I still consider it a really challenging topic but this first approach help me to begin to understand it.

Comentarios

Entradas populares