Sif
Last semester I had the chance to use Ruby for the
first time. Oddly, it felt like a combination of many languages I was used to.
The fact that everything is an object was really interesting and programming
with it was relatively easy. However, I was not expecting to use it in Compiler
Design.
I liked to see how previous concepts like the
Interpreter Pattern where applied in a real case scenario. SIF offer
interesting ways to define classes and call methods. It’s very impressive that
you can do both Imperative and Functional Programming.
I can see how many things I’ve learned in Clojure one
year ago can be applied to SIF, mainly because it’s syntaxis is based on Lisp,
which was the base for Clojure. Things like the use of Parenthesis, the 3
argument structures, reliance on lists and recursion are presents in this
language.
The way it makes easier to understand all the work
that is done behind the code, how those commands are interpreted by the
compiler in order to carry them out. Now I can understand the purpose of the
last classes of my Programming Languages course.
This makes me think about the importance of teaching
students to design compilers. Thought it’s true most of them won’t ever do something
related to it, knowing this makes them see the logic behind many programming
languages, thus improving their understanding of said languages.
SIF is a very simple language, but its features allow
to add a huge amount of functionality. I’m very curious to see if I can
implement some basic commands using SIF.
In the end, just like previous articles, this one has
managed to make me appreciate more the compilers and their use in my daily activities as a programmer. if I know how the language works backdoors, then I'll know what it can do and its limitations. Thank you for reading, see you next time.
Comentarios
Publicar un comentario