lunes, 28 de enero de 2019

Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler

I found the article called "Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler" very interesting because it broadened my perspective on the situations in which the knowledge of a compiler course can be applied.


I could understand that if I consider compilers as an instance of translators from almost any language to almost any other language, then the topics studied acquire great relevance for solving a wide variety of computational problems.


I found the examples that were analyzed very interesting, because previously I had not thought that a directed or unmanaged graph could be represented by a context-free grammar that could use compiler techniques to convert text to a graph. Similarly, it is interesting to note that to translate between LaTeX and HTML you can apply techniques very similar to those used in compilers.


In the section in which the article refers to the lexical analysis, the author allowed me to clarify the operation of this phase thanks to the analogy he makes between this phase and the translation of the English language. In the same way, I learned that there are tools such as lex and flex that allow generating lexical analyzers with advanced techniques and in a simple way. I also managed to understand how the analysis trees can be used for syntactic analysis. Something that made this section very clear to me is that thinking about translation problems as a compiler problem (and using known tools for these problems such as lex and yaac) can make the job much easier.


In the semantic analysis I could see that a problem can become very complex if it is not given the right approach, as in the case of semantic analysis in compilers that can help to easily solve a problem such as calculating the space occupied by objects created in an html document.

Finally, for the generation of code and optimization, I can say that they seem to have a slightly more obvious relationship with the compilers since, if the compilation techniques were not used, solving these types of problems would be very difficult and messy.

No hay comentarios.:

Publicar un comentario