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.