Posts

The Hitchhiker’s Guide to the Galaxy

Hi, today’s entry is going to talk about this course book called “The Hitchhiker's Guide to the Galaxy” published in 1979 by Douglass Adams. This book is literally a journey through space. The main character Arthur Dent escaped from the Earth with Ford Prefect (the actual writer for the Hitchhiker’s Guide to the Galaxy) because it was going to be destroyed. Arthur and Ford escaped on a Vogon ship (the ones who destroyed the Earth), but they were blasted into space and caught by another ship piloted by Zaphod Beeblebox, the king of the universe. That ship was both stolen and special because it has the “improbability drive” that literally functions as it sounds, with improbability. Thanks to that ship ability they arrived at a legend planet called Magrathea, where they found all the truth. That planet was the home of a computer built to find the answer to the question of Life, the Universe, and Everything. Guess what? The answer is 42 and the Earth was another super-computer built t

Technical Overview of the CLR

Hi, today’s entry is going to talk about an article called “Technical Overview of the Common Language Runtime (or why the JVM is not my favorite execution environment) written by Erik Meijer and Kim Miller in 2001. Basically, it talks about how in the past years, some language researchers moved to JVM as kind of the delivery vehicle for their language. We know that JVM is a really good target for the Java programming language, but it is not necessarily a good platform for other languages (making an emphasis in the ones that require semantic features that do not appear in Java). And here is when and why the author introduces to us the new Microsoft .NET Common Language Infrastructure (or CLI), designed from the ground to be a multi-language platform.  I want to mention one thing that seemed curious to me, the authors of this paper are Microsoft members (or at least that’s what I saw in their emails at the start of the article). This aspect made me think that obviously, as the authors

Building Server-Side Web Language Processors

Hi, today’s blog entry is going to talk about an article called “Building Server-Side Web Language Processors and once again, the author is our Compilers Design professor Ariel Ortiz. Basically, it talks about and discusses useful insights for instructors who are considering using some kind of web approach in the courses involving language design and implementation. The purpose is to have students build a language processor that runs on the web, rather than on processor that runs on a command-line shell as normally they do. This web tool or web server was used for three different courses: Programming Languages, Language Translators and Software Development Project. I want to mention that from these subjects, I also have taken the first one, while the others are completely new to me, I’ve never heard about them and I think they aren’t imparted anymore, at least not with that name. I found interesting that incorporation of a web-based approach into those courses. Why? Because it inv

Ruby and the Interpreter Pattern

Hi, today's entry is going to talk about an article written by our professor Ariel Ortiz. The article/paper is titled “Language Design and Implementation using Ruby and the Interpreter Pattern “. After reading this paper, I realized some things. First of all, I got really impressed that this paper explains a framework used to teach in a course, in my actual university, that I already took. Second, in the title the Interpreter Pattern is mentioned and actually in another course (from which I also write a blog weekly) we are treating design patterns. It’s important to mention that I’m taking that course now and it is with the same professor.  Basically, The S-expression Interpreter Framework (SIF) is explained in this article as a tool for teaching language design and implementation concepts. This interpreter was written in Ruby to help us, the students, to learn a popular object-oriented dynamic language and language design and implementations concepts. But here is the curious poin

Mother of Compilers

Hi, today’s entry is going to be a little different. In my other entries and blogs, we were always talking about one article, one podcast, one documentary, etc. But today we are going to talk about two, an article and a mini-documentary. I’m referring to the article “Grace Hopper – The Mother of Cobol” by Historian, and the documentary “The Queen of Code” directed by Gillian Jacobs in 2015. Obviously, they talk about the same topic, in resume Grace Hopper as a programmer.  The first one, the article, talks specifically about Grace Hopper as not only the responsible for the Cobol language development, but also for the constant pressure exerted to the industry for computers development and make them in an accessible way. One of her reasons for this was to bring the research and career woman’s interests in computing to the forefront, why? Because she suffered the disadvantages of being a woman with interest in technology and despite that, she became the most famous and important soft

Internals of GCC

Hi, this entry will talk about an episode of the Software Engineering Radio. It is Episode 61 and is titled as “Internals of GCC”. The special guest is Morgan Deters and, basically, this podcast talks about compilers and how they internally the work. It covers all the steps of a GNU Compiler Collection construction (in this case GNU), going from parsing different programming languages to machine optimizations and processor binary code generation.  At first, I thought that I would not understand many things in this podcast since I never heard the GCC concept before. Then I started to realize that it could be used to compile C code, or C++ code or even more. This is why I knew that this might be a very robust tool, so I started to expect a good explanation, which came later. The GCC has three parts or aspects: The Front-End, Middle-End and the Back-end. I already heard the first and last term, since I have some experience in web development, but middle-end was new for me.  Basic

The Hundred-Year Language

Hi, this entry will talk about an article titled: “The Hundred-year language”, written by Paul Graham. Basically, it discusses how computer languages (and programming languages) are going or may be in 100 years.  The author started with a curious and, in my opinion, a great comparison saying that in the same way as species, the languages (including computer or programming languages) form a kind of evolutionary tree, where some of them end as dead-ends branches. A clear example is Cobol that, despite its past popularity, it doesn’t seem to have any descendant, fact that automatically converts it in an evolutionary dead-end branch. I bet that in the great Cobol days, nobody thought that it won’t evolve, nor have descendants, nor be commonly used. Then, the author talked about something really controversial speaking about programming languages: the supposed success of the Java language. I think that Java it’s the most known programming language and for many people the better progra