domingo, 23 de febrero de 2020

1 Making Compiler Design Relevant for Students

After reading the precise thoughts of Saumya Debray displayed in “Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler“, I can honestly say that I view compiler design in a whole new light. As he said, we “[…] typically focus narrowly on the translation of high-level programming languages into low level assembly or machine code” (5), but it does not have to be this way.

Compiler design follows a set of rules that can influence the way we view translator problems. Since the task comprehends a step by step process, the operation suggests a detailed approach lacking in the minds of programmers now a days.

To enlighten my point a bit, the phases a compiler goes through are essential for anyone who is thinking of pursuing a career as a programmer. One must understand these phases to be able to construct an optimized code:
1. Lexical analysis and parsing: which means “[…] examining the input to be translated and dividing it into groups of adjacent characters, called ‘tokens’” (3).
2. Semantic analysis: meaning the type or scope of variables.
3. Code generation: explained more generally “[…] as an instance of the process of translating from a representation of a source language entity to that of a corresponding target language entity” (4).
4. Code optimization: which aims to reduce costs by transforming the output code into one that improves performance (be it in time, size, or energy usage)

So, it seems that compiler design is more than it would appear. Understanding structure develops our way designing code, because it provides us with the essential components of a problem and how to resolve said problem step by step. In conclusion, having this example of design could determine our way of understanding the similarities between the programming languages available to us.

No hay comentarios:

Publicar un comentario

7 Lin Clark on WebAssembly

Typically, we use an array of code to create a website. HTML is used for its structure, CSS for styling and Javascript for the website’s beh...