Making Compiler Design Relevant for Students

We all, as Computer Science students, know that a compiler is one of the most important element in the software industry; it is not only because of its design, but for the functions that it has. However, even though its importance is a great deal, nowadays, students find it kind of difficult to get interested in compiler design courses (there are 3 choices, you can feel interested, you can feel uninterested or you can feel scared [I include myself in the last option].). This lack of interest can be related to the fact that students kind of know that they will not be asked to design a compiler in the future. Nevertheless, they (we) need to try to get the best of this course, since it has some tools that might be helpful in other areas or courses.
 
According to the paper, to design a compiler, you need to consider 4 phases: Lexical analysis and parsing, Semantic analysis, Code generation and Code optimizations. These phases, even though they are really useful for designing a compiler, can be useful in other areas, like translating or analysis; this is because phases require the designer to know some topics like automatons, graphs, regular expressions, operating systems and different programming languages.


As a student, I agree on the statement that establishes that, on the future, since we might not be asked to create or develop a compiler, we lose the interest on this course without considering that the knowledge that we can acquire on it can be helpful on other course or on our career. However, I am also aware of the importance of this course and its phases, as well as the knowledge that it contains; that is why we need to pay special attention to the techniques and tools that are used to design a compiler because we do not know if we will need them on the future.



Comentarios