Ir al contenido principal

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


 After having my time with the reading I got the opportunity to answer some of their questions I did to myself when I heard of this subject. First it was the doubt of How many compilers I will have to make in my future life?, now I know that the maybe I will never have to do another compiler, but that I have to pay more attention into the problems and learn about the solution in a more modular way. Looking for the problems like this even outside the subject is a very good philosophy for any life. You are basically just taking all of the huge problems and solving them in small parts just as the programming advices always tells you.

One of the examples that remberme something is the translator of Latex into html because somehow remembers me the tool web of symbolab, when I need to make some math notes or I have math homework I use symbolab tool as GUI for making my matrix and just having to Ctr+c in order to get the Latex commands and export them to my document.

From the text I will remember the phases for making a compiler that are:

  • Lexical Analysis
  • Semantic Analysis
  • Code generation
  • Code optimization
These on are pretty good explained an in a way these seems a little bit easy but at the end some implementations are one that may have their complexity when I get the chance to implement them, From these phases the one that I always have issues is the Code optimization because the optimization I thinks is so relative and in some times this part always become so  competitive between the team.

This reading gave me the chance to see all of the things i can still learn or to improve, It still is going to be a challenge but also help me see why we can take this subject as a las subject exam but create a new doubt about how is going to be the legendary final exam.

Comentarios

Entradas más populares de este blog

Lin Clark on WebAssembly

 I think is pretty good to have the web topic around another blog activity and well combined i think because the last semester I got the chance of talking the computational graphics subject and is was all focus on web development for 3d rendering and was very important because it's been a while since the browsers have access to the graphics card and indeed this been my first approach to the technology is as Lin mention where we have the structure as HTML,  design CSS and Javascript for the functionality. It was surprising  for me to see that this was first designed for PC because of the way we use JavaScript for games in the web and is an language that born just to be easy to understand leaving just a side the optimization. From the podcast i understand the benefits of the binary instructions provided by Web Assembly; It's design made for the portability and with targets of high level languages have the functionality of the deployment o client or server client.  When they menti

Internals of GCC

 After listening to the podcast i got a whole new vision to the "layers" and the importance into understanding the benefits that you can get from looking into every layer, and for that every day there is  a lot of effort from all the compiler developer in order to improve this functionalities. Now we can actually threw all of the stages in which the source code that is written by the programmers into the target code that understands the computer and can execute it. First the lexical analysis we are going to check all of the characters stream into a token stream, that basically means looking for all of this reserved word or variables that will be used justa as "and, or, do". The second stage is the is where we introduce the abstract syntax tree in order to see the order in which the operations are going to be compute.The third phase is going to be a check to see if the variables were declared in the previous version. And Finally the code generation  that can be easy