domingo, 12 de marzo de 2017

Building Server-Side Web Language Processors Commentary

In the article "Building Server-Side Web Language Processors " written by Ariel Ortiz in 2010, the subject of building a compiler using a web server and client are discussed, as well as the benefits of it as a teaching tool. The concept is a little hard for me to grasp, specially since I've yet again not taken the web design course, or at least, not all of it. However, it is amazing how you can process a web language using the server itself. It seems quite challenging, and it said the article that not all projects were carried out successfully, as generating web language for the web container was particularly hard. Either way the concept is pretty interesting. It is no lie that a compiler can translate from a vast variety of source language to a target, even web language. That would have never crossed my mind.

In recent years, web applications have taken an apparent importance in the world of software development. It's far easier to program something to work in a web explorer than to design an application that may be limited by the environment's resources, such as a computer with its OS or a phone with its limitations. It's quite useful to just put it all in a server and offer it via web, so that accessibility is not an issue. A compiler that basically works online is quite the accomplishment, and while it not only offers such accessibility it is also a great way to combine two subjects from the degree curriculum. However, the limitations are apparent, because students like me would probably suffer twice as hard for poor course selection through the years. Regardless, it is good to know that these compiler design methods can be applied to an even bigger set of languages and that the only limitation to platform or translation is given by one's imagination. Maybe next time they could attempt to make a compiler phone app. It might be fun to try and see people fight against those standard app developing environments.

Source:

Ortiz, A. 2010. "Building Server-Side Web Language Processors". Retrieved 12 March 2017 from: http://webcem01.cem.itesm.mx:8005/publicaciones/weblang.pdf 

domingo, 5 de marzo de 2017

Language Design and Implementation using Ruby and the Interpreter Pattern commentary

In the article "Language Design and Implementation using Ruby and the Interpreter Pattern" written by Ariel Ortiz in 2008, describes the S-expression Interpreter Framework, a powerful tool designed to teach students of the Programming Language course. Once again open source software result in knowledge easy to share and to improve on. Sadly, my comments towards the subjects aren't as rich as they could be since I have not personally taken the course, so my knowledge on the area is extremely limited. However, one can start to see the relation s-expressions have with compilers. Certainly, the Interpreter handles similar problems and methods to solve such problems as a compiler, it must take a certain array of characters with meaning in a language, and to generate usable code for another language. In such a way, the SIF probably uses many of the steps we've been taking to design our own compilers.

The real message that I can clearly take from the article, besides a snippet of a framework that I may use in the future, is that magnificently, when it comes to computers and coding, it's all tightly connected. The knowledge gained in the Compilers design course will inevitably be linked to Programming Languages, because languages are the subject to translate in compilers to begin with. Moreover, understand one will help understanding the other, and may lead to hints on how a framework life SIF is programmed. Additionally, another use of syntax analysis, and scanning using regex, and context free grammars reveal themselves, as building blocks for tools crafted by people who have a vast knowledge of these steps. I am curious to begin the Programming Language course, more than I was before anyways, as my weird mix of subjects might have inadvertently given me an advantage for taking compilers first. Only time will tell, fingers crossed. 

Source:
Ortiz, A. 2008. "Language Design and Implementation using Ruby and the Interpreter Pattern". ACM. Retrieved 5th of March 2017 in: http://webcem01.cem.itesm.mx:8005/publicaciones/sif.pdf