Posts

Building Server-Side Web Language Processors

  Building Server-Side Web Language Processors We all know that in the time we live everything "cool" needs to be on the web, dead are the days that the only thing you need to do to make a good project was by developing for the terminal or windows only. And as a student I would say that the courses that I enjoyed the most where the ones that got something to do with web pages, web services or just web in the name.  And today's blog got the "web" word on it, so we already knew it was going to be amazing (And it was written by the one and only professor Ariel Ortiz).  The paper of this week is   “Building Server-Side Web Language Processors” ,  That is main topic is how a course involving language design can be successfully had a web approach, meaning that the course can be cool and more rewarding than just developing something for the terminal. The main and maybe only drawback is that additional material is needed in order to achieve the goal.  Personally, I see

Ruby and the Interpreter Pattern

 Language Design and Implementation using Ruby and the Interpreter Pattern Hi everyone, hope you and your family are doing great. Today we are taking a look at the paper   “Language Design and Implementation using Ruby and the Interpreter Pattern”  by  Ariel Ortiz , the excellent teacher that had showed me and my colleges really difficult but interesting topics throughout the hole Computer Systems Engineer degree.  The main topic of the paper is the S-expression Interpreter Framework (SIF), which is based on the interpreter design pattern and is written in Ruby (I personally have only worked with Ruby in another class with professor Ariel, and I really enjoy it, I’m looking forward to learning more about it, specially Ruby on Rails), but the main focus is how this can be use as a tool for teaching language design. A good software engineer needs to study and practice multiple programming paradigms, such as functional programming and imperative programming, and here is how SIF can help w

Mother of Compilers

 Rear Admiral Grace Brewster Murray Hopper was a pioneer and genius women, responsible for really amazing advances in the computer science field: She saw an opportunity and a way to make easier for all people to develop software, here vision was to write code in plain English, and with that idea she developed Cobol language. Grace Hopper saw the necessity for a high-level language before anyone else, she wanted computer to be able to use the same language regardless of the machine type, she was really ahead of her time.  Both the article and the video   gives us a great resume of her amazing life, her impact and her legacy that remains to today. I was left with an open mouth to hear her achievements and genius. Truly a remarkable woman that we as software engineers own her a lot. One important factor is that Grace Hopper achieved this in a man only environment, she was fighting a battle that still remains to our days, the inclusion an opportunity for women is a problem that we are figh

Internals of GCC

Compilers are a tool that most programmers don't think about, we are used to high performance, quality compilers that we just use them and give them as granted. However, know I find very interesting to learn how a compiler works, how it interprets my code, how it optimizes it, the components of the compiler and all the parts that form it. This is also really important because learning the low level of a compiler could be useful in another areas of software engineering. Thanks god we live in an era that computer software is really advance, in most cases we work with compilers as black boxes, we write the program and the compiler do all the hard works for use, I'm not saying writing a good program is easy, but we now just work with high-level stuff.  This week, we listen to the podcast " Internals of GCC " by Software Engineering Radio with Morgan Deters as guest. The podcast does not get too technical, but it gives us enough to understand more than just the high-level

The Hundred-Year Language

 The Hundred-Year Language Inside the software engineer filed, there is always a controversial topic, which programming language is the best? And the answer in most cases is: it depends. But this excellent article by Paul Graham , gives us an insight to a branch of this topic, which programming language is the future-proof? Paul Graham use an example of how programming languages developed like how animal species evolve, like branches in a tree, but, as we know, some branches lead to a death end, and this behaviour also applies to the development word, Cobol is a good example about this, even do it was very useful and powerful at its time, now its seems that Cobol branch leads to a death end. But in the bright side, with each death programming language at least one good thing about it will be used in newer and better languages, so is not all waste.   The other important factor is how computers are becoming ultra-fast, so more and more speed is stopping to be a requirement because it is

Making Compiler Design Relevant for students who will never Design a Compiler

 Hello everyone, hope everything is going well for you and your families. I got to say, I wasn't very happy about taking this class (Compiler Design), mainly because I had the mentality that  the knowledge of the class in any way was going to be useful in my personal or professional life,  because I do not have any plans of developing a compiler in any way.  Today we start with a fascinating article,  Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler, by  Saumya Debray .  It really excited me about the class, because I now can see how useful the knowledge (that I hope I can learn and understand)  of this course is. the other way I see the class like a culmination of all the things that I had learned throughout the hole Software engineering career.  Understanding the core functionalities of a compiler is going to help all of us to tackle some other problem o creating something super cool (Like LaTeX, that it is a compiler). This article wa

The last ride

 All journeys come to an end, and my friends, this is the end of mine, the end of my college degree… It's been five year of riding a killer rollercoaster, with its steady rising, and hell of fast downs, but it was, and still is, fun and enjoyment for my self. If I could go back and talk to my younger self, he would never believe all the crazy sh*t that I, we went through;  The last two bosses are here, two big and powerful enemies that will give everything they have to defeat me; but I know, that this long journey has prepared me for them; here I am CENEVAL and Compiler Design class, ready to see watch you got.  Also, I recently watched Memento by Christopher Nolan and holy molly it blows my brain out, go watch it.