domingo, 26 de febrero de 2017

Mother of Compilers

Mother of Compilers

“Oh my God, we exist”
I laughed a lot with that phrase, but I will talk about that later.

 I have heard abot COBOL but I did not know that a womer was in the devlopment, it is an iconic programming language, it is the firs way to comunícate instructions to a machine for “average” people, and sometimes we talk about the extrordinary impact it has and there are some jokes but it is just a reminder of the language in a fun way.

Going back to the video and the article I was really amazed when I begun reading and watching the video about her, there is so many things that we should be grateful with her, She was responsible not only for the development of the Cobol, she was a participant of the continuous innovation in software, because everybody suddendly wanted to be in the computer industry. I am not saying it is a bad idea, I mean, I am here and if not for that maybe I will be interested in other stuff and not IT.

I like the story about the Computer Bug that was a real world bug, I use the term bug for errors in my programs and debugging as usual part of my vocabulary and time ago I listened the story but I in that moment I had not idea it was part of Grace Hopper´s memories.

I agree abot the idea of equality of Opportunities independant of the gender, if someone has the abilities then should try and maybe make amazing things.

Ok taking the first line again, I do not know why are so few women in IT, in more traditional cience is, at least what I have seen, almost the same number of male and female students, workers and professors but it will be great if more women could be interesting in this area, is facinating and has lots of braches of study. 

domingo, 5 de febrero de 2017

Internals of GCC

Internals of GCC

On the podcast, Morgan Deters that is in the Washington University in St. Louis talk about the Gnu compiler collection (GCC). He talk about why compilers are relevant for us, a topic that has been treated before.

Usually we do not care about compilers, we are busy trying to make a program but we rarely tink about the tolos that make all work.

GCC is a compiler collection that supports many languages such as C, C ++, Objective C, Chill, Fortran, Ada, etc.

GCC is capable of receiving a source program in any of these languages and generate a binary executable program in machine language, which is going to run in our computer. First the compiler needs to read a plain text, this is the source file, and then  understand what does it mean, the compiler needs to know the variables, the type and understand the semantic of the content.

He explains that to be able to have a general purpose compiler, it was decided to divide it into various layers, the front, middle and back layer.

The middle layer takes the input of this first layer and optimizes it in order to make it better for the assembler to analyze it, finally at the backend we specify the architecture in what our code must be executed.

And in the back layer an optimization  is made to the machiine code.
That is the reazon why we could have diferent languages in the front layer. Another thing I find really usefull is that GCC is flexible and portable, it can run in many platforms of Unix, Mac OS and Windows. 


The code optimization, one of the most used and valued parts is, in my point of view not enoough understood for programmers. Honestly now i am a little afraid of the idea of make a compiler …