Sunday, January 21, 2007

Doing Meta: from meta-language to meta-clippy

Doing Meta: from meta-language to meta-clippy: The theme of the January/February recent issue of Technology Review is "software", and the cover story is "Anything You Can Do, I Can Do Meta", by Scott Rosenberg. [...] I guess that the source must have been the language/metalanguage distinction in logic, though exactly how this usage came into proto-computer science in the 1950s and 1960s is not clear to me.

The earliest use of meta-language I can remember in computer science is in John McCarthy's 1962 LISP 1.5 Programmer's Manual:

The second important part of the LISP language is the source language itself which specifies in what way the S-expressions are to be processed. This consists of recursive functions of S-expressions. Since the notation for the writing of recursive functions of S-expressions is itself outside the S-expression notation, it will be called the meta language. These expressions will therefore be called M-expressions.

This approach to programming language specification should be contrasted with that of the equally famous Revised Report on the Algorithmic Language Algol 60 by Backus et al., 1962, who introduce the well-known BNF syntactic meta language (although they don't call it a meta language) but use informal natural language to describe the semantics of Algol 60. The notions of abstract machine and formal operational semantics needed still a few years to develop beyond the relatively simple recursive definitions sufficient for LISP 1.5.

No comments: