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
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.
domingo, 21 de enero de 2018
Making Compiler Design Relevant for Students
Making Compiler Design Relevant for Students
As the author mentioned in this articule, compiler desing is a very usefull subject in all of the computer science student, despite off is not very common that this topic became an actual professional career, this is because compiler desing is a very speccialized topic.I make this statement considering the rate of people that actually make money from this kind of jobs, and also considering that in the buisness world there is not a big actual work in this area, I could say this is because this area does not creates a service or product for end users funcionality.
The Auhtor considers that is very usefull to take this topic in computer science careers, not beacuse of making student compiler designers for their living, but for making student learn the practices and logic compilers design have to apply those in the day to day coding or architecture systems design.
Because this way of thinking may help engieniers to give a more complete way of approaching computers problems. Not beacuse the fact you know how to make a compiler, more like when we complete the course we are going to be able to look problems in a very different way, and this help help us to design better solutions and processes.
Before reading this article, I really could not have beign able to consider this course a very usefull subject for my professional career, even more that I really do not planned to end as a compiler architecture, but now I can see all the things I could take advantage of this course in order to become a better programmer, architecture or engienier for my professional life.
References
“Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler“ by Saumya Debray.
martes, 9 de enero de 2018
About Me
My name is Josep Romagosa I'm on the 8th Semester of the System Engineering career. For this course I hope to have a closer idea of compiler language, I do have a theorical idea of how this works, but as many things in engineering, you can not fully understand a topic until you get down to work and start practicing.
I have always considered the theater as a hobby, both to see it and to be part of it. I also enjoy cinematographic films. I would never earn my life doing this but I like to keep it as a hobby.
One of the movies I have recently enjoyed was Mother from director Daron Aronofsky, I loved how he could tell a story we all know by memory as a complete new story and without even tell which story he is trying to share.
My favorite kind of music is modern and acoustic version of classic rock and roll songs, one of my favorite is \"Sweet child of mine\" but the \"Captain Fantastic\" movie version, I consider that all song with a classic rock and roll base really have a whole armory between the lyrics and the music.
I also like to spend my holidays in countries I have never been, i like to just grab my backpack, find the cheapest flight and then go visit and travel as many places as I can, I make this every holiday school and work allowed me to do.
Im actually working in a digital marketing company, my main function there is to develop web pages, sometimes they are very simple such as landing pages or register form, but every semester im in charge of one or two big web app such ash ecommerces, CRM or ERP.
And that was a little bit of me lately.
I have always considered the theater as a hobby, both to see it and to be part of it. I also enjoy cinematographic films. I would never earn my life doing this but I like to keep it as a hobby.
One of the movies I have recently enjoyed was Mother from director Daron Aronofsky, I loved how he could tell a story we all know by memory as a complete new story and without even tell which story he is trying to share.
My favorite kind of music is modern and acoustic version of classic rock and roll songs, one of my favorite is \"Sweet child of mine\" but the \"Captain Fantastic\" movie version, I consider that all song with a classic rock and roll base really have a whole armory between the lyrics and the music.
I also like to spend my holidays in countries I have never been, i like to just grab my backpack, find the cheapest flight and then go visit and travel as many places as I can, I make this every holiday school and work allowed me to do.
Im actually working in a digital marketing company, my main function there is to develop web pages, sometimes they are very simple such as landing pages or register form, but every semester im in charge of one or two big web app such ash ecommerces, CRM or ERP.
And that was a little bit of me lately.
Suscribirse a:
Entradas (Atom)