Entradas

What the heck is the CLR

I guess this reading did not surprised me because Microsoft has been working with the open source community and trying to push their development tools for quite some time.  I found very interesting the advantages of portability and compactness, mainly because we live in the age of downloads and compactness is a very important factor. Also,  as I would like to know more about security the part of implementing security in the multiple platform execution environment.  Lastly, the flexibility with the construction of typesafe meta programming sounded really good. Specifically, the CLI works  using multiple concurrent threads of control which are basically a silly linked list of stack frames. It contains the following components: Instruction Pointer to point to the next CLI instruction, evaluation stack containing intermiediate values of computation, array of local variables, array of incoming arguments,  method info handle that contains information about each method, memory pool for dynam

iLanguageProcessor

It is like the last reading very interesting to consider a different approach to the teaching of a particular subject. In this reading what I thought is that it is pretty accurate to say that it is good to have a language processor web based, just because it is very probable students will focus on web development in the future, this is my case. I want to become a web developer and thus, it would be really helpful to understand how to implement this processor on a web based application, and more importantly, a server side app. The part I liked the most was the one about security and syntax. The part about syntax made me think about the kind of programs I write using php which are like the second syntax, but I have also wrote some JavaScript and it is more like the first type. On the other hand, I while reading I was thinking about the security issues that could cause running code even from a new language on a server, and thus the part about HTML injection was for me the most interestin

Language Design

I think it was a good reading, I remember one of the most interesting things I learned on Programming Languages was the meta-circular evaluator. I found interesting the concept of instead of teaching functional programming teaching how to construct an interpreter of a functional language. I guess the professor stop doing this because it was too similar to the project of compiler design. I believe all the subjects we learn are very interesting in the way they teach a very specific concept like programming languages, compiler design or computer graphics and manage to a generic very important concept to apply in different areas. As such, this reading showed how to apply interpreter and language design to the class. This same design techniques could be applied to the compiler design class, it would be pretty interesting, at least for me, to have an input on the language to design the compiler, maybe add classes or decide the syntax. I think it could be difficult for a class as such to bo

Women's greatest contribution to Computing

According to both, the documentary "The Queen of Code" and the reading "Grace Hopper - The Mother of Cobol" it was a woman the one who had the idea of creating a non-hardware specific Programming Language. It was such a contribution she was named Computing Man of the year, which she did not bother about the man. I think it is amazing for her time to gain the respect of all man in the area. I also think it is a shame that we usually do not hear this story, because we do not talk about computing history, it is very important and most of all encouraging to know that women in computing make big contributions. It is a shame that after a women invented Cobol, we only talk about important man in the area, our career is full of men, and there are no women encouraging programs to bring more of them into the field, even when they were the ones making the biggest contributions. It is true that today we have more opportunities for women, but at least in my school there is no

How a compiler really works?

The podcast was very interesting because it tells you the difference between the books and real world implementation of the famous compiler GCC. With GCC, they had to think on how to create a generic compiler for multiple languages and multiple architectures, which may present a challenge when implementing because it is completely different than the book theory.  The way this compiler achieves this is by separating the language translation from the architecture translation. The Front-end part of the compiler does the language translation, in other words, it converts a given language to a type of C. It is language specific. The middle-end is independent from the language and the platform, but it basically optimizes the given code for either runtime or memory usage.The backend produces the given architecture binary, it is obviously platform specific. I also think it is very interesting how it mentions the compromises needed to change the platform and how some code can actually run bett

How will programming language be in 100 years?

The reading was interesting, I think I've never thought that maybe the programming language I like the most could disappear. But it is true that the most inefficient way of coding is doing extra work, thus precise programming languages may be a better choice (for example Python or Clojure) but there is the challenge of real time apps and the slowness of these languages. At the end, simplicity makes it difficult to write an algorithm or at least normal algorithms. C is one of the most important programming languages, but it is very difficult to use because you can choose on how to do everything, even memory allocation. Which could be a very important tool for certain algorithms, other Programming Languages that are not that customized are faster to learn and faster to code but a little slower to execute. I think, by now, a language like C will always exist because we need this level of customization, but it won't be a success, it will only be used in special cases or for reusin

Learning important skills while learning compiler design

I think the main concept of the reading which is how to teach a compiler class without necessarily learning about compilers is very interesting because indeed what we should be trying is to develop skills instead of teaching knowledge. This because knowledge is already in the Internet, but many times teaching knowledge is a way to develop a skill. The reading mainly focus on explaining what other exercises can be used to teach compiler design, but it is mostly because of the skills they develop being the same as to design a compiler. On the other hand, the reading also explains the skills needed to create a compiler and I think it is really good to stop and ask why are we learning the course. To be honest, when I saw the curricula I thought compilers was a useless topic, at the end we have already many compilers and many programming languages, I never thought about the skills it actually develop. As I was diving into the major, I thought of compilers as an interesting challenge, but