Technical Overview of the CLR
In this blog I will be discussing about the paper call Technical Overview of the CLR written by Erik Meijer and Jim Miller.
At the start the authors speak about how Virtual Machines and intermediate langauges are important nowadays and how some of the trending technologies that exist in the media and why people have found them very usefull. It is mentioned why these type of technolgies are becoming a trending, the authors consider this is because the following characteristics: portability, compactness, efficiency, security, interoperability and flexibility, which we can agreed are things we are expecting in technologies nowadays.
In the next section of the paper, it is explained the architecture of the common language infrastucture, in which explain every elements that includes de CLR.
To resummy this article. we could said that is basically it's purpose is to give an introduction to the concepts and elements of an intermediate language, which is a very complex and generic language who has the ability to comunicate to the asembly.
I found very interesting to read, even that I could not actually understand completley all the subject talked in the paper, beacuse I was able to find a lot of comparisons between the JVM and the CLI I am buidling today in my Compilers Desgin course, which helped me to understand in a better way, amny things we have been studying in the class.
It is certain that this is a very big field in computer science that requiere much more than just read a paper and take one course of compiler design, despite this it gave me a much closer approach of the differences beween CLI and JVM so I consider it was a very usefull article.
References
"Technical Overview of the Common Language
Runtime" by Erik Meijer and Jim Miller
Compiler Design
domingo, 15 de abril de 2018
domingo, 18 de marzo de 2018
The Hitchhiker’s Guide to the Galaxy
The Hitchhiker’s Guide to the Galaxy
As you can see all of my blogs entries were about compiler design and architecture in computer science. But now this blog will be about a book I have been reading this semester. The book's name is The Hitchhiker’s Guide to the Galaxy, it is a novel which it's story is develop on fictional universe about adventures in space and other planets.
I like this book because some facts that are mentioned in this book challenge the physcical laws we know rule our universe. Another interesting fact of the novel is that is written in an absurd comedy style, which gives the author of the book to explore innovations way of fool our socity even our universe. You will find many references to math and phisics, so if you are the tyoe of person who knows just a little bit of scince, you will find this novel hilarious .
I will be giving a little spoiler, so if you would like to read the book, i recommend you to stop reading right now...
The main plot of the novel starts whith the destruction of our planet, the main characters of the novel travels on a ship with an engine run by the umprobability theory. The story has a lot of very funny and unexplainable parts of the story, that at the end they all get connected. At the end reader find out that Earth was actually a computer design to anwser the question of the universe, which is 42, the problem was that nobody knows the question to that anwser.
This is a very good book and i would recommend anyone who like sci-fi stories to read this novel. There is a move film as weel, but I consider it is much better to read the book instead.
References
“The Hitchhiker’s Guide to the Galaxy”, written by Douglas Adams
As you can see all of my blogs entries were about compiler design and architecture in computer science. But now this blog will be about a book I have been reading this semester. The book's name is The Hitchhiker’s Guide to the Galaxy, it is a novel which it's story is develop on fictional universe about adventures in space and other planets.
I like this book because some facts that are mentioned in this book challenge the physcical laws we know rule our universe. Another interesting fact of the novel is that is written in an absurd comedy style, which gives the author of the book to explore innovations way of fool our socity even our universe. You will find many references to math and phisics, so if you are the tyoe of person who knows just a little bit of scince, you will find this novel hilarious .
I will be giving a little spoiler, so if you would like to read the book, i recommend you to stop reading right now...
The main plot of the novel starts whith the destruction of our planet, the main characters of the novel travels on a ship with an engine run by the umprobability theory. The story has a lot of very funny and unexplainable parts of the story, that at the end they all get connected. At the end reader find out that Earth was actually a computer design to anwser the question of the universe, which is 42, the problem was that nobody knows the question to that anwser.
This is a very good book and i would recommend anyone who like sci-fi stories to read this novel. There is a move film as weel, but I consider it is much better to read the book instead.
References
“The Hitchhiker’s Guide to the Galaxy”, written by Douglas Adams
domingo, 11 de marzo de 2018
Building Server-Side Web Language Processors
Building Server-Side Web Language Processors
On this blog I will also be discussing about a paper witten by my compiler design teacher in the Computer science career. The main topic of this paper is to consider a web approach to compilers design teaching method.
First the author introduces todays process of teaching this course, in which students are able to create a very small but yet fully functional compiler at the end of the semester, which the author considers that there is a lot of subjects and concepts left to teach, to solve this Ariel suggests a web-based architecture compiler for this course to be teached.
Despite of the advantages this course can have by implementting a web approach, the author decreates that many of the stduentes by the time they get graduated, will become web developers, so this way of theaching compilers design will halp students also to understand the web architecture of an aplication.
This concept is basically to have a server that, by stablishing rules and apis in order to make the web-based language usefull enough, is able to function as a translating language.
The papers introduces how a web based architecture works and which elements conformed a web aplication, later this, Ariel explained how this elements can be configured and programmed to have transalator program and with this make a much wealthy course for students of this career.
As a web programmers, I do really agreed my teacher's approach to this course, beacuse it may help student more about web based architecture which is very usefull subject for the out profesional career and I even found this a very innovating way of teaching very abstract and difficult subjects of computer science career,
References
“Building Server-Side Web Language Processors”. by Ariel Ortiz
On this blog I will also be discussing about a paper witten by my compiler design teacher in the Computer science career. The main topic of this paper is to consider a web approach to compilers design teaching method.
First the author introduces todays process of teaching this course, in which students are able to create a very small but yet fully functional compiler at the end of the semester, which the author considers that there is a lot of subjects and concepts left to teach, to solve this Ariel suggests a web-based architecture compiler for this course to be teached.
Despite of the advantages this course can have by implementting a web approach, the author decreates that many of the stduentes by the time they get graduated, will become web developers, so this way of theaching compilers design will halp students also to understand the web architecture of an aplication.
This concept is basically to have a server that, by stablishing rules and apis in order to make the web-based language usefull enough, is able to function as a translating language.
The papers introduces how a web based architecture works and which elements conformed a web aplication, later this, Ariel explained how this elements can be configured and programmed to have transalator program and with this make a much wealthy course for students of this career.
As a web programmers, I do really agreed my teacher's approach to this course, beacuse it may help student more about web based architecture which is very usefull subject for the out profesional career and I even found this a very innovating way of teaching very abstract and difficult subjects of computer science career,
References
“Building Server-Side Web Language Processors”. by Ariel Ortiz
domingo, 4 de marzo de 2018
Ruby and the interpreter pattern
Ruby and the interpreter pattern
Today im going to talk about a paper written by my very own teacher of computer science career, Ariel Ortiz. This paper is about a very interesting aprouch of using ruby to teach language design.
As I said this blog will be about using ruby and the interpreter pattern, to explain compilers design in a much more explanatory way.
The code provided by the auther is like a compiler that simulates lisp-like functions. This code is written in Ruby language and it actually creates structures in a very similar way to Lisp. So you can cosnider this code as a good example of teaching a new approach in compiler design courses.
The Author explained that is easier to teach langauges design beacuse this way the programmer eliminates a lot of ambigous and abstract concept and leaves the very core of the language design concept.
Of course this s a very usefull tool to teach and learn about compiler design, but you first need to understand about design patterns so you can easily see how the interpreter pattern suggested by the auther, helps to understand abstract concepts of a compiler design.
It is a very interesting aproach of the teacher to find out another way of explaing this type of subject, by removing the unnecesary concept and to take a very practical and usefull tool to make class excercises and self-explanaoty examples. I found this paper very interesting, maybe beacuse im also at the moment in the design and architecture course, and I could learn more about the interpreter pattern.
You can access the paper in the next reference, or get in touch to the author, Ariel Ortiz of the paper at Tecnologico de Monterrey for more information.
References:
Language Design and Implementation using Ruby and the Interpreter Pattern”. by Ariel Ortiz
Today im going to talk about a paper written by my very own teacher of computer science career, Ariel Ortiz. This paper is about a very interesting aprouch of using ruby to teach language design.
As I said this blog will be about using ruby and the interpreter pattern, to explain compilers design in a much more explanatory way.
The code provided by the auther is like a compiler that simulates lisp-like functions. This code is written in Ruby language and it actually creates structures in a very similar way to Lisp. So you can cosnider this code as a good example of teaching a new approach in compiler design courses.
The Author explained that is easier to teach langauges design beacuse this way the programmer eliminates a lot of ambigous and abstract concept and leaves the very core of the language design concept.
Of course this s a very usefull tool to teach and learn about compiler design, but you first need to understand about design patterns so you can easily see how the interpreter pattern suggested by the auther, helps to understand abstract concepts of a compiler design.
It is a very interesting aproach of the teacher to find out another way of explaing this type of subject, by removing the unnecesary concept and to take a very practical and usefull tool to make class excercises and self-explanaoty examples. I found this paper very interesting, maybe beacuse im also at the moment in the design and architecture course, and I could learn more about the interpreter pattern.
You can access the paper in the next reference, or get in touch to the author, Ariel Ortiz of the paper at Tecnologico de Monterrey for more information.
References:
Language Design and Implementation using Ruby and the Interpreter Pattern”. by Ariel Ortiz
domingo, 25 de febrero de 2018
Mother of Compilers
Mother of Compilers
It is well know that in prevoius years it was very difficult for women to develop their academic and profesional life, even today, society it is not fully evolved in order to give women same benefits and responsabilities than men.
Despite this, there have been very important and succesfull women in history, that demostrates that people that stablish their personal goals and giving your life to that goals, you can acomplish anything.
In this blog I am going to talk about one of the woman who ignores the stupidity of the society and worked hard to leave a better world for the tommorow, and thanks to that woman we have all the techonologies we have today, and that woman is Grace Hopper.
Grace Hopper is a militar computer scientist from the United States, she is the first programmer for Mark langauge, she studied maths and phisycs in Yale in 1930, and later that she joined the army in 1944.
Grace Hopper was one of the first into compilers in history of humankind. She is was dedicated to her carres and after years of effort and studying sha manage to create COBOL langauge, by stablishing the vary basics we used nowadays in moder computer science.
Grace is a great example that it does not matter your gender, age, religion, raze, etc. if you are truly dedicated to your passions, and that studying, time, practice and pattience can make every person able to manage any obstacle presented in their lifes.
References
Pages 1 and 2 of the 2013 article titled “Grace Hopper – The Mother of Cobol” from the “I Programmer” web site.
The video documentary “The Queen Of Code” (16 minutes long), directed by Gillian Jacobs in 2015.
It is well know that in prevoius years it was very difficult for women to develop their academic and profesional life, even today, society it is not fully evolved in order to give women same benefits and responsabilities than men.
Despite this, there have been very important and succesfull women in history, that demostrates that people that stablish their personal goals and giving your life to that goals, you can acomplish anything.
In this blog I am going to talk about one of the woman who ignores the stupidity of the society and worked hard to leave a better world for the tommorow, and thanks to that woman we have all the techonologies we have today, and that woman is Grace Hopper.
Grace Hopper is a militar computer scientist from the United States, she is the first programmer for Mark langauge, she studied maths and phisycs in Yale in 1930, and later that she joined the army in 1944.
Grace Hopper was one of the first into compilers in history of humankind. She is was dedicated to her carres and after years of effort and studying sha manage to create COBOL langauge, by stablishing the vary basics we used nowadays in moder computer science.
Grace is a great example that it does not matter your gender, age, religion, raze, etc. if you are truly dedicated to your passions, and that studying, time, practice and pattience can make every person able to manage any obstacle presented in their lifes.
References
Pages 1 and 2 of the 2013 article titled “Grace Hopper – The Mother of Cobol” from the “I Programmer” web site.
The video documentary “The Queen Of Code” (16 minutes long), directed by Gillian Jacobs in 2015.
domingo, 4 de febrero de 2018
Internals of GCC
Internals of GCC
In this blog will not be talking about a paper or a review instead of that this time will be dsicussing a podcast that will be trying to explain about compiling and all its parts, processes and phases, this will help us understand compilers design and with this improve our architectura desings of a compiler or any other project in the future.
The interview, in order to try explaining compilers, he divide compiling process in three phases, front end, middle end and back end, i will try to explain what I could understand of each phases in the podcast.
The front end basically its main function is to translates raw inputs into trees and spaecial charactecters programmer will need to understand the commands. The middle end main function is to optimize the processes regarding the computers hardware, and then the back end that will send this proceses to the computer´s CPU.
In this blog will not be talking about a paper or a review instead of that this time will be dsicussing a podcast that will be trying to explain about compiling and all its parts, processes and phases, this will help us understand compilers design and with this improve our architectura desings of a compiler or any other project in the future.
The interview, in order to try explaining compilers, he divide compiling process in three phases, front end, middle end and back end, i will try to explain what I could understand of each phases in the podcast.
The front end basically its main function is to translates raw inputs into trees and spaecial charactecters programmer will need to understand the commands. The middle end main function is to optimize the processes regarding the computers hardware, and then the back end that will send this proceses to the computer´s CPU.
Of course this is just an easy and abstract representation of a compilers functionality. I found veru interesting how a program is divided in two side, the programs algorith which is develop in order to solve a problem, such as automate a process, calculate values, etc.
This using as few resources as posible and in the must simple way of solving it and in the other side the compiler desing which tries to translate as the very best posible way the algorithm commands to the computer, caring for spaces in memory, threads to cpu, and many other elements to consider in efficency of coding, etc
As we are just making a high-level program into another hight level program, we are not taking much attention in the gcc but the podcast will help us to undertand how to transalate Deep Lingo to C# program as best as we can do.
This using as few resources as posible and in the must simple way of solving it and in the other side the compiler desing which tries to translate as the very best posible way the algorithm commands to the computer, caring for spaces in memory, threads to cpu, and many other elements to consider in efficency of coding, etc
As we are just making a high-level program into another hight level program, we are not taking much attention in the gcc but the podcast will help us to undertand how to transalate Deep Lingo to C# program as best as we can do.
domingo, 28 de enero de 2018
The hundred year language
The hundred year language
This paper starts with the following authors question, What kind of programming language will be use in the future? This is a very hard question, so to discuss this i will try to give my point of view of this subject in this blog.
In my opinion we can not predict which this langauge will be, as we can see through history, nowadays we have a very big tree of all the la languages and their precedences. So its very hard to derterminate where this tree will converge o ends. Every of this langauges have different way of managing structura data, using data, sending threads to cpu, asign memory spaces, jerarchy operator, etc.
As the author mentioned, programming languages will no be improving with the technological advances, because programming languages are not technological depended, languages are just a mathematical notation that represents command and algorithms that a computer understands.
Mentioned this, we can say the the programming language that will be used on the future, can be created today, but, in order to do this, the programmer needs to consider the hardware computers will have in the future, beacuse the we estimated that computer will be much faster in hunderd years from now.
If someone take the chalange the author suggest, i will recommend him/her to go directly to the core of this new programming language, as the the author recommend as well.
If the core of the language is design with innovation, is well planned and the programmer is taking care of all the things we have said previously, maybe, this is a very possible goal to acomplish, but for now i consider today programming languages are still evolving beacuase every programmer has its own style and fit with his prefer language and trying to make a unique language is hard path to take.
This paper starts with the following authors question, What kind of programming language will be use in the future? This is a very hard question, so to discuss this i will try to give my point of view of this subject in this blog.
In my opinion we can not predict which this langauge will be, as we can see through history, nowadays we have a very big tree of all the la languages and their precedences. So its very hard to derterminate where this tree will converge o ends. Every of this langauges have different way of managing structura data, using data, sending threads to cpu, asign memory spaces, jerarchy operator, etc.
As the author mentioned, programming languages will no be improving with the technological advances, because programming languages are not technological depended, languages are just a mathematical notation that represents command and algorithms that a computer understands.
Mentioned this, we can say the the programming language that will be used on the future, can be created today, but, in order to do this, the programmer needs to consider the hardware computers will have in the future, beacuse the we estimated that computer will be much faster in hunderd years from now.
If someone take the chalange the author suggest, i will recommend him/her to go directly to the core of this new programming language, as the the author recommend as well.
If the core of the language is design with innovation, is well planned and the programmer is taking care of all the things we have said previously, maybe, this is a very possible goal to acomplish, but for now i consider today programming languages are still evolving beacuase every programmer has its own style and fit with his prefer language and trying to make a unique language is hard path to take.
Suscribirse a:
Entradas (Atom)