Entradas

Technical Overview of the CLR

Imagen
Before writing this week's entry, I decided to include and image of a CLR representation or diagram. Unfortunately, the first thing I got when searching CLR in Google was this mineral deposit remover. Probably this is irrelevant to the post, but it was funny. Probably not as funny as Erik Meijer and Jim Miller, authors of "Technical Overview of the Common Language Runtime". Having said this, it is time to talk about JVM vs CLR. JVM is an environment that executes Java programs. The cycle consists that Java programs are compiled into an intermediate language called byte code, then any program compiled into byte code can be executed on any platform that has a JVM installed on it. Have you already notice the power of this? well, if you do not notice, this makes Java software compatible with many different computing platforms, so it is a very powerful feature! In the other way, CLI a platform-independent development system from Microsoft that enables program

Building Server-Side Web Languages

Hello again! Welcome to this week's blog entry in which I'll talk about the interesting fact that students feel more comfortable by learning with useful and practical activities rather than theoretical information. So, why is this important? The way the teacher provided the info to the students who where in that course was the fact that changed the way they learned. I have always thought that the problem with education is that many students feel like they getting relevant knowledge or probably they are not aware of what is that knowledge useful for. So, this is an interesting approach to the innovation in education. About the compiler project itself, I found it interesting the three ways the author proposes to develop the compiler. By using the CGI, building it on an existing web technology and programming our own web server. This is because the professor is not limiting the students to take a single approach, but he lets them try whatever they want.  Even tho

Ruby and the Interpeter Patttern

SIF is a useful tool for us as students because it lets us know how an interpreter works and how is it designed to translate from that framework to Ruby language and to implement any function we want the interpreter to do. Despite the fact that the interpreter is quite small, it has enough functions to let us know how it identified variables, functions and does evaluation to create the procedures, functions or statements we want. We can create add new functionality by following the rules described by the article to test how does the functional, imperative and object-oriented programming styles work and to test the variable scopes and continuations. What I believe is that this kind of approaches to language programming lets us appreciate more than we usually do by reading books and coding apps while we learn by the documentation. That is because we can, literally, design the way the programming language works and find new ways to make it more easy to understand, or more co

Mother of Compilers

In this week entry, I'll talk about an important woman in the computing science world, her name is Rear Admiral Dr. Grace Brewster Murray Hopper (a.k.a Amazing Grace), she was a game changer in the computer science department of investigation, this because she's one of the first computer programmers in history! And second because she's considered as the title of the reading is called, “The mother of compilers” because she built the first compiler ever which was a great achievement for us computer programmers. Another great achievement by Dr. Grace is the idea behind using if/else statements having a basis into the English language, everything she made is an achievement and well if we think of the industry where she belonged, military and computer science, one can only imagine the difficulties that she faced into trying to fulfill her dreams and goals, first of all because both industries were ruled by men and as all we know racism and the idea that men are better,

Internals of GCC

Probably, if we hear the word “compiler”, we do not show amazement or even a high reaction, we just say: "oh well, good for you" . And that’s the problem we have right now. The compiler process it's important in order to run our programs and we don't the enough importance to it. But in this post, I'll talk about a podcast that gives a really good introduction to the GCC. The first time I heard the podcast, I really get astonished because the GCC receives a lot of inputs of programming languages. And then the podcaster introduces the internal part or ecosystem of GCC. A thing he mentioned is that it is divided into three main layers. Front, middle and back. The front shows us how important is the language we will use in order to compile, all the lexical and syntax analysis, the structure of our program. The middle show us a minimum representation of what we build in the front part. And finally, the back shows us our new program transformed into the correct

The Hundred-Year Language

I got to be honest, I can't imagine a programming language that preservers its popularity for a hundred years. It is impossible because the human race is evolving, and with changes, the world is constantly updating and developing new things. For example, Cobol and Basic are languages that in a few years will be almost obsolete and we will be improving more and more programming languages as we discover new things or new necessities to be attended. The interesting thing here is that this is a particular case, for example, languages or idioms persists for more than one hundred years and the reason is that we need them to communicate with other people. The keyword is there, “need them”. So just imagine that we build a programming language that substitutes the others languages and it is distributed in all the countries of the world. We monopolize the programming language into one. And there’s the answer we want. That programming language will persist for more that one

Am I going to design a compiler?

Let me tell you something, this was a really heavy article; but I should have guessed that because of the content. The title can be a little tricky because this article talks about the structure of a compiler and its translations, nevertheless it can make some students really think about the topic, compiler design, with a different approach than the same approach I think all of us have at the beginning which is that the compiler it’s not important or useless, and that is because the article is a good start point for everyone to get to know the basics of the compilation, its process, relevancy and some applications. This article is no more than a start point, why? because after reading it you can still have some doubts, at least I had got a few, especially in the process part. But there is one thing that make this article accomplish its purpose, make compiler design relevant, and that is that it makes you think about many of the things that we normally don’t think about, one ex