domingo, 7 de abril de 2019

The Hitchhiker´s Guide to the Galaxy


The Hitchhiker´s Guide to the Galaxy is a story of the two human beings who survive the Earth’s senseless destruction, and their adventures in space and time while attempting to discover the meaning of life

This book written by Douglas Adams begins with Arthur Dent facing the destruction of his house to replace it for a new highway. While this is happening, Arthur's friend of many years, Ford Prefect, tells Arthur that Earth itself is about to end, as an alien race wishes to make an intergalactic highway and Earth is in its way.

The novel takes us with Arthur and Ford to their adventures in the galaxy onto the Heart Of Gold, the most advanced ship in the galaxy, which itself was hijacked by Zaphod Beeblebrox, the two-headed, three-armed, way trippy ex-hippie president of the galaxy and an old "friend" of Ford.

At the ship they meet Trillian which is Zaphod´s girlfriend, whom Arthur once tried to mack on, and also they meet a paranoid, chronically depressed robot called Marvin. Arthur and Ford travel through the galaxy, searching for the question to the Ultimate Answer Of Life, the Universe, and Everything.
The author describes to specifically how the technology of this novel works, we can read about technology never heard like the telepathic Babel Fish which can translate all known languages, and the Infinite Improbability Drive which powers the spaceship Heart of Gold.

This book is also famous because of its satire on philosophy and religion fields. The meaning of life written in this book is actually “42”.

To be honest I like the book but only in the funniest parts, I believe that in some chapters the story is a little bit boring and I lost the thread of the plot, which makes it even more boring for me to re-read those parts and continue with the plot

viernes, 22 de marzo de 2019

Technical Overview of the CLR


In this article we read about the common intermediate Language, it seems to be better than the Java Virtual Machine. In this article we can see the pros of using common intermediate Language and also the cons of using the java virtual machine. Many experts have written about the disadvantages of using the JVM, and here we can see them clearly.

There are reasons to choose an alternative to native compiler, which are:
  • ·        Portability
  • ·        Compactness
  • ·        Efficiency
  • ·        Security
  • ·        Interoperability
  • ·        Flexibility

The Java Virtual Machine does not give a way to encoding type-unsafe features of typical programming languages, such as pointers, immediate descriptors and unsafe type conversions.
It also has a lot of libraries not only for have but for other languages, this makes it a multi-language platform.

There is a tool called CLI developed by Microsoft that has good support for imperative and statically Oriented Object Languages. The code created with a language compiler that targets the runtime is called managed code. It benefits from some features like the cross-language integration, cross-language exception handling, enhanced security, versioning and deployment support, a simplified model for component interaction, debugging and profiling services.

The common language runtime called CLR, makes it easy to design components and applications whose objects interact across languages. Also in this article we read that objects written in different languages can communicate with each other, and their behaviors can be tightly integrated. CLI is not the perfect multi-language platform but is way better than java virtual machine

lunes, 11 de marzo de 2019

Ruby and the interpreter pattern report



This entry is to talk about the article “Language Design and Implementation using Ruby and the Interpreter Pattern” written by our professor Ariel Ortiz. Int his article we read about the SIF, which means S-Expression Interpreter Framework and it is used to demonstrate advanced language concepts and also to demonstrate programming styles. It is a tool for teaching language design and implementation. It is an interpreter based on the Interpreter design pattern.

It is so simple to use, it allows integers, symbols, lists and procedures. Also, we have to mention that Ruby has power and flexibility of dynamic languages, so it is easier to understand. This pattern allows us to write interpreters that can be studied with basic build blocks that this pattern provide us. We can see the different behaviors of trees after being interpreted, and this is called a functional program.

Using an interpreter, the syntax is implemented in the initialize method, it receives an array with all the arguments. Then, validates the syntax and constructs the substrees that corresponds. Also with this method we can analyze the semantic analysis. Here, this method receives a context as a parameter and is called recursively for some or all the child nodes.
One difference that can be noticed is that a compiler generates intermediate code, while an interpreter is a reduced version of a compiler. The Design of patterns is very important to be considered in the process of designing a compiler.

sábado, 16 de febrero de 2019

Rear Admiral Dr. Grace Brewster Murray Hopper



Born on December 9 of 1906.
Grace Hopper was a strong woman, strong because she was in disadvantage of being a woman (I mean disadvantage because of the time she was living) an interested in technology. She went to Vassar College to study maths, physics and engineering. She made a thesis called “A new Criterion for Reducibility of Algebraic Equations” .

She worked first as an instructor, then as an assistant professor and finally as an associate professor at Vassar. During the second World War, she joined the US naval reserve.
After the war, her next important move was the Eckert-Mauchly Corporation which was nearing completion of the UNIVAC. She was thinking in making machines easier to use by creating higher level languages. So in 1952 she and her team at Remington wrote the A-0 compiler. She solved the problem of forward references by using a fixed jump area where the addresses of routines could be stored when they were discovered later in the program's text.

She also wrote the first symbolic differentiator. She demonstrated that a compiler could translate programs written in French and German into machine code. She deserves to be called the mother of Cobol since she did much to influence the newer details of Cobol Language.
She retired in 1966 with the rank of commander but the Navy still needed her and seven months later she was asked to take on the job of standardizing the Navy's use of languages. She returned to active duty at 60 and was promoted to Captain.

In 19569 she was selected by the Data Processing Management Association as their first “man” of the year. She proved that women can be better programmers than men. In 1964 she awarded the Society of women Engineers Achievement Award and was made a Distinguished Felow of the British Computer Society in 1973, the first woman and the first American ever to be so honored.


viernes, 8 de febrero de 2019

Internals of GCC


To make a Little introduction of GCC, I am going to tell you what I heard from a podcast by software Engineering Radio and Morgan Deters. GCC is a set of compilers for a wide variety of languages, not just for C language. It can be used into other languages, as many of programmers maybe did not know.

A compiler is defined as an interpretation of a set of line codes that are written on a determined language program, This Compiler is the uncharged of creating a parse tree to translate all the grammar representation of that language. When we talk about compilers we must take into consideration an important thing constantly mentioned in the podcast, the optimization. We have to take it into account in methods and routines.

Morgan Deters talk about GCC and he specifies its functions as a portable compiler that can be run on most currently platforms. He considered GCC as a cross-compile because the previous reason, and because of their not completely native characteristics. This compiler produces executable files, allowing a compilation in embedded systems. This compiler takes into consideration the optimization, but another characteristic of it is the portability, this means that the compiler can be adapted to new systems quite facile.

Compilers as Morgan Deters said, help us to save great amounts of memory, because programmers waste memory spaces that become inaccessible. Obviously GCC is not a perfect compiler and it has some disadvantages, such as being unspecific of the error we have in the code and were this error is presented. GCC can be used for anyone who wants to use it, but in my opinion, the user must have some experience with this compiler, so that it would be easier to use

Internals of GCC


To make a Little introduction of GCC, I am going to tell you what I heard from a podcast by software Engineering Radio and Morgan Deters. GCC is a set of compilers for a wide variety of languages, not just for C language. It can be used into other languages, as many of programmers maybe did not know.

A compiler is defined as an interpretation of a set of line codes that are written on a determined language program, This Compiler is the uncharged of creating a parse tree to translate all the grammar representation of that language. When we talk about compilers we must take into consideration an important thing constantly mentioned in the podcast, the optimization. We have to take it into account in methods and routines.

Morgan Deters talk about GCC and he specifies its functions as a portable compiler that can be run on most currently platforms. He considered GCC as a cross-compile because the previous reason, and because of their not completely native characteristics. This compiler produces executable files, allowing a compilation in embedded systems. This compiler takes into consideration the optimization, but another characteristic of it is the portability, this means that the compiler can be adapted to new systems quite facile.

Compilers as Morgan Deters said, help us to save great amounts of memory, because programmers waste memory spaces that become inaccessible. Obviously GCC is not a perfect compiler and it has some disadvantages, such as being unspecific of the error we have in the code and were this error is presented. GCC can be used for anyone who wants to use it, but in my opinion, the user must have some experience with this compiler, so that it would be easier to use

Internals of GCC


To make a Little introduction of GCC, I am going to tell you what I heard from a podcast by software Engineering Radio and Morgan Deters. GCC is a set of compilers for a wide variety of languages, not just for C language. It can be used into other languages, as many of programmers maybe did not know.

A compiler is defined as an interpretation of a set of line codes that are written on a determined language program, This Compiler is the uncharged of creating a parse tree to translate all the grammar representation of that language. When we talk about compilers we must take into consideration an important thing constantly mentioned in the podcast, the optimization. We have to take it into account in methods and routines.

Morgan Deters talk about GCC and he specifies its functions as a portable compiler that can be run on most currently platforms. He considered GCC as a cross-compile because the previous reason, and because of their not completely native characteristics. This compiler produces executable files, allowing a compilation in embedded systems. This compiler takes into consideration the optimization, but another characteristic of it is the portability, this means that the compiler can be adapted to new systems quite facile.

Compilers as Morgan Deters said, help us to save great amounts of memory, because programmers waste memory spaces that become inaccessible. Obviously GCC is not a perfect compiler and it has some disadvantages, such as being unspecific of the error we have in the code and were this error is presented. GCC can be used for anyone who wants to use it, but in my opinion, the user must have some experience with this compiler, so that it would be easier to use