Ir al contenido principal

Ruby and the Interpreter Pattern

 In a way reading this text means to me a lot of responsibility, somehow I image that if I didn't understand anything was because I was not really paying attention to the class, or even if I didn't understand the meaning of all of this text the understanding of the next class will be limited. Just pint where am I in this topics, I got to known ruby when I was just beginning to look into the iOS developer dependencies where all of the Cocoa pods were written in Ruby. This one is the inly approach that I have gotten until know, but I have already heard from some classmates that we see this language in Software Architecture.

First the reading mention the S-Expressions (SIF), a topic that I got the chance to understand it in the last semester maybe not as deep as in other semesters because of the migration to zoom classes where we lose like three weeks.  But the things I remember the most is the importance of their order in order to have the compiler working perfectly. And just as we mention in the case that we find the "if special form" we will also have to define the new class that has the Node attributes, just to be used for the interpretation of the pattern tree.

From my point of view it's very easy and well explained the notation that the S-expressions have in the Lisp Family, just like any other explanation tha Ariel gave us, seems pretty easy just until we get the need of implement it. The next phases of the compiler will be more and more complicated not just because of the phases itself but the need of having all of the phases working correctly. Any way I have the fully trust in my team that we will solve all of the problems together and in the perfect timing.



Comentarios

Entradas más populares de este blog

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 reme

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