Entradas

Mostrando entradas de marzo, 2019

Technical Overview of the CLR

This last entry based on the article titled Technical Overview of the Common Language Runtime  written by Erik Meijer and Jim Miller. Basically what the authors do here is a comparison between Common Language Runtime (CLR) and the Java Virtual Machine (JVM). The CLR is basically a platform-independent development system which enables programs from different programming languages to be run on different types of hardware and it is composed by the Common Tape System and the Common Language Specification, after being written the applications written in CLR are compiled into Intermediate language and finally compiled into the hardware in which you want to run the code by the Common Language Runtime. In contrast, the JVM is an environment that is used to execute Java Programs, these programs are compiled into bytecode and then ran on any platform that has JVM installed. But, which one is better? And the answer is CLR, even though these two platforms are interesting and have their own str

Building Server-Side Web Language Processors

This entry is based on an article titled  “Building Server-Side Web Language Processors”,  by our teacher Ariel Ortiz. The article wants to explain that it is possible to build a language processor in a web environment. In order to do this, we must adapt our work to a web interface and we must also consider when trying to do this ourselves (because it can get tricky). The article tells us that developing a language processor for web it is not easy, it has a lot of challenges, not only the challenges we face while making a regular programming language, but also the challenges that come with having a web development. Challenges include handling the HTTP, security, adaptability, the specifics of each browser, and many others. There are several tools and practices which we can use to deal with these problems and overall it is a very laborious task. It is important to know the inner works of how a web language implementer works, the reading emphasizes a lot in this, and it is recom

Ruby and the Interpreter Pattern

This entry is from an article called “Language Design and Implementation using Ruby and the Interpreter Pattern”, written by one of our best teachers called Ariel Ortiz. The article talks about an implementation he made to evaluate different LISP expressions that are given as strings using a framework called S-Expression Interpreter Framework. The framework is a Digital Subscriber Line (DSL), it uses the Ruby language and allows us to build S-Expressions (for example Clojure, LISP) by the implementation of the interpreter pattern. The basic principle of the interpreter pattern is that some problems are solved far more easily by creating a specialized language to solve it, and then expressing the obtained solution in that language, interpreters are known to have two phases, the first phase is the one in which the parser reads in the program text, then it produces a data structure that is called an Abstract Syntax Tree (AST Tree), in the second phase the obtained AST from the p