Entradas

Language Design and Implementation using Ruby and the Interpreter Pattern

 I have got to be honest, it is a tough read. I had to read it a couple of times because the way it is explained is a little tedious, specially if you know nothing about the Ruby language.  After reading about it a couple of times I think I got the general idea about what the text is trying to get to, however it was still kind of difficult and a little bit confusing at first glance.  What the author was trying to get at with the explanations described in the article was the use of a bunch of tools that describe a sorta direct way to translate from a language directly into machine code using the language Ruby and the tools it provides. While the idea is a little bit complex at first, it makes sense since languages like common lisp and Clojure work in the same manner.  In fact while reading the article some flashbacks of my days of programming Clojure came rushing back as those days were the days I suffered a little bit with the new (at the time) way of creating struct...

Mother of all compilers

 Grace Murray Hopper was an exceptional woman that settle the basis for modern computing, and that not many people know the name or the story, which is kinda sad. Personally I had heard the name before but I always forget and I shouldn’t. Specially since she is the one that contributed the most to the language Cobol. While that language isn’t used as much as it was in the old days. It is one of the most influential programming languages of the modern era.  I now will remember her because of the famous story of the bug in the Mark I, which apparently she was also one of the leading officers of the entire project. Which is also by no means a small feat. I personally find surprising that in the video “The Queen of Code” of Vimeo, it is mentioned that she also helped with the math involved in the creation of the detonation mechanism of the nuclear bomb dropped on Japan during the second world war.  While surprising I really don’t find it weird due to the need during those tim...

Internals of GCC

 During the interview many ideas crossed my head, for example, I always thought that GCC meant “Gnome C Compiler” instead of “GNU Compiler Collection”. However it was kinda interesting to listen to what one of the collaborators of such a successful and well known compiler has to say about the implementation of a functioning compiler.  As I agree with a lot of the stuff that he mentioned, optimization, removing dead code, bettering the use of memory. But what surprised me the most was that he mentioned that a bunch of different compilers were combined in the same place, because most of them have a bunch of similarities, and not just in the way this were implemented.  He mentioned that the use of context free grammar and compilation trees makes the process of joining a bunch of different languages and contexts to a common point were there can all be implemented, compiled, optimized and deploy. To me that has a very big impact because what that is telling me is that having a...

The Hundred Year Language

Thinking about what the future’s programming languages be like, I think is a great thought experiment. Because it allows us to aim to that and create said languages. For example let’s say that it is my job to create said programming languages, as the author says, it is absolutely correct that my design would be influenced by the languages I currently know and use. Which I have to say, I don’t see it as a bad idea at all. Some of the languages we use today (2020) are very efficient and easy to understand (at least to me) however I have mentioned to my friends in the past that I hate and love some of the features that every language has, the description of my perfect programming language would be as follows:     1. The language wouldn’t be indentation oriented like python, I would much rather have to use “;” and “{}” in order to make my code work, I don’t know, it seems crazy to me that for example in languages like ABAP the way to finish an instruction would be a “.”   ...

Making a Compiler Design

At first glance learning about compiler design sound fun due to the challenge it represents because it sounds really hard, but at the same time interesting.Learning about how it works and the techniques that it uses in order to make things easier, it sounds even more interesting as it is the philosophy of dividing and conquering that it is one of the angular stones of all programming. I also like the story the author used to describe how having a particular way of thinking about this sort of problems can be transferred into other areas of thinking and as a result it opens a bunch of opportunities to improve my programming skills, as wells as learn new ways to solve complex problems with little code and ingenious solutions. I am super excited to begin learning said techniques and I have big expectations about this techniques to put them into practice for my jobs and personal projects to see what functions better and what worse. Because at the moment of writing this post I don’t understa...

About myself

 My Name is Jesús Omar Cuenca Espino, I'm a 23 yo student of Tec de Monterrey. From the course of Compiler Design I have great expectations to learn C# and improve my coding abilities. As well I would like to learn how to develop my own programming language so that it has all the things that I love about other languages, and remove the things I dislike. I want to have a Ph.D in AI and Machine Learning, I am very interested in those sort of subjects as well as automation and software development. I love learning new things, specially about technology. Recently I haven't had much free time due to work and personal projects. But I read again "The Art of War" by Sun Tzu due to being my favourite book and being a book that teaches about strategy in war as well as business and personal life.