Metalinguistic abstraction |
In computer science, metalinguistic abstraction is the process of solving complex problems by creating a new language or vocabulary to better understand the problem space. It is a recurring theme in the seminal Massachusetts Institute of Technology textbook, the SICP , which uses Scheme programming language as a framework for constructing new languages.
For example, consider modelling an airport inside a computer. A procedural language (e.g. C programming language) programmer would create data structures to represent the elements of an airport and functions to operate on those data structures. An object-oriented (e.g. C plus plus) programmer would create objects to represent the elements of the airport with methods which represent their behaviors. A functional programming (e.g. Scheme) programmer would create functions representing both elements and behaviors of the airport. A metalinguistic programmer would abstract the problem by creating a new language for modelling an airport with its own primitives and operations. The language could then encompas any or all of the above techniques as required by the problem at hand.
Because the creation of functional metalinguistic abstractions in non-functional languages can be cumbersome and also because of the syntactic flexibility of functional macros, metalinguistic programming is most often performed on a functional base.|
|