I never had the chance to interact with something similar to the SIF when I took
the Programming Language Course last semester. That’s a shame because it seems
like a very interesting work tool that enables better comprehension about the
way in which one may go about creating a new language or to better understand the
basic mechanisms of the functional and imperative programming paradigm. What I
also find interesting is how we can skip all the complexity of trying to create
a new or feature from a low-level language like assembly or a really verbose
one like C and just concentrate on what is really important, like data,
semantic and syntax.
Another important aspect of the SIF, at least for me, is how
it is based on such a simple pattern like Adapter and how powerful it can be.
Even with an OO-Pattern and using and OO-Language we can create a something
very similar to Lisp or functional languages in general. This makes me think
about the theory of computability as proposed by the Church-Turing Thesis.
Copeland (2017) describes any computable method with this hypothesis as one
that can be done by a human with sufficient time, no intuition and only using
and pencil and paper. This method must also be programmable in a Turing Machine,
in the sense that the machine must approach the desired result using only
instructions available on a Turing Machine. Since practically all computers in
this day and age are Turing Machines with different implementations, we can
represent any algorithm using any of those implementations. Meaning, we can
compute pretty much everything using any kind of paradigm and represent
anything starting from a particular paradigm and “translate” it to another.
I hope that when I work in the near future, I may be able to
experiment with the tricks and interesting factors of many languages, maybe
even help in creating one myself.
References:
Copeland, J. (2017). The
Church-Turing Thesis. Stanford Encyclopedia of Philosophy. Recovered on 11/03/2019
from: https://plato.stanford.edu/entries/church-turing/
No hay comentarios.:
Publicar un comentario