Hello,
I'm please to announce that I will be giving a 90 minutes session at the
next ACCU conference, in Oxford. The abstract is given below:
Meta-circularity... and vice-versa
As complexity increases, one often feels limited by the use of a single
language, and incorporates new technology in order to express the original
problem more abstractly, more precisely, and design solutions more
efficiently. Using better-suited languages also has the advantage of letting
you think about your problem in new and different ways, perhaps ways that you
had not thought of before. It is thus no surprise to see the profusion of new
languages that we face today, notably scripting and domain-specific ones.
But then, why the need for all this new and different technology? Wouldn't it
be better if your primary language could evolve the way you want it to? And
why is it not generally possible? Perhaps, because your primary language is
not really extensible...
Meta-linguistic abstraction, that is, the art of language design plays a
capital role in computer science because we have the ability to actually
implement the languages we design, for instance by creating interperters for
them. A fundamental idea in this context is that an interpreter is just
another program (by extension, one could argue that any program is an
interpreter for a particular language).
In this session, we will revive a historical moment in computer science: the
birth of meta-circularity. When, in 1958, John McCarthy invented Lisp, he
hadn't foreseen that given the core 7 operators of the language, it was
possible to write Lisp in itself, by way of an interpreter. The practical
implication of meta-circularity is that a meta-circular language gives you
direct control over the semantics of the language itself, and as a
consequence, means to modify or extend it. No wonder, then, why lispers never
felt the need for external DSLs, scripting languages, XML or whatever. The
reason is that Lisp, being extensible, can do all that by itself. Lisp is, by
essence, the "programmable programming language".
--
Resistance is futile. You will be jazzimilated.
El Didou
Show replies by date