Entradas

Mostrando entradas de octubre, 2019

Technical Overview of the Common Language Runtime

This will be the last entry in blog, this post is focussed in giving my opinion about the article titled “Technical Overview of the Common Language Runtime" by Erik Meijer and Jim Miller, I am reading this article because I am developing a compiler as a project of the compiler design course that I am studying at ITESM and at this point I have already developed with my college partner the stages of lexical,syntatic (including AST construction) and semantic analysis and finally we are developing code in order to do the Code generation using the CLI (Common Language Infrastructure) because we are using C# and the Common Language Runtime (CLR) is present in this programming language, so, in order to understand better this virtual machine and its common language infraestructure and its differences between the JVM (Java Virtual Machine), our professor (Ariel Ortiz) recommended to us this article that it does   a comparison between JVM and CLI, I must say that it is a very interestin

Building Server-Side Web Language Processors

Hello, this time I will give my opinion about the article titled: “Building Server-Side Web Language Processors” by my professor Ariel Ortiz, this article basically explains that it is possible to build a language processor (kind of a compiler, interpreter or a combination of both) in a web environment and it shows the areas that need to be considered when doing this processor. Basically, Ortiz mentions in his article that developing a language processor for a web area is not that trivial, and this is because not only you need to face challenges of making a programming language (traditional fight with the dragon compiler), but also you need to challenge with all these "obstacles" that a web development has, like handling the Hypertext Transfer Protocol, having in mind the security issues, etc. As you can see, if you have in mind to build a language processor in a web environment, you need to consider those challenges so that you need to consider having knowledge in areas of

Sif

Last semester I had the chance to use Ruby for the first time. Oddly, it felt like a combination of many languages I was used to. The fact that everything is an object was really interesting and programming with it was relatively easy. However, I was not expecting to use it in Compiler Design. I liked to see how previous concepts like the Interpreter Pattern where applied in a real case scenario. SIF offer interesting ways to define classes and call methods. It’s very impressive that you can do both Imperative and Functional Programming. I can see how many things I’ve learned in Clojure one year ago can be applied to SIF, mainly because it’s syntaxis is based on Lisp, which was the base for Clojure. Things like the use of Parenthesis, the 3 argument structures, reliance on lists and recursion are presents in this language. The way it makes easier to understand all the work that is done behind the code, how those commands are interpreted by the compiler in order to carry them ou