Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler*
Compiler design: Is that kind of topic, assignment, tool etc, that most students will never have to do, the amount of people designing compilers vs the amount of people actually using this compilers is to small that you may think that is useless but we usually see and study that topic for the "footprint" that it leaves in the brain of someone trying to become an IT professional. The correct understand in the design of compilers can change the way you design some algorithms to adapt better to the architecture you are using.
The experience it gives you in other areas like context free grammar and translation problems, like converting some code to run in other platforms (LaTeX to HTML is a common example).
Tools Like Lexical Analysis and Parsing: this is the process of "imposing structure on the sequence of tokens obtained from lexical analysis", basically the process of giving meaning to all the information extracted from the code, in some times, this is translated to other platforms or languages like an sql.
Semantic Analysis:
The propagation of information, some variables, need to be displayed somewhere, the process of moving around this data is the semantic analysis, where the complexity can grow exponentially every time we add more tools to the language used.
Code generation:
The process of transforming the readable code to the programmer into an executable code to the computer.
Optimization:
It consists it reduce some cost of execution in the cost, usually in runtime, but it can be different depending on the platform we are aiming or the available tools, memory usage or size are other areas where we can optimize the code and sometimes and optimization in one area can reduce the efficiency in other area.
The best thing students usually learn from a design of compilers class is the ability to solve translation problems, this are common and hard problems.
Comentarios
Publicar un comentario