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. More generally, it also encompasses the ability or skill of a programmer to think outside of the pre-conceived notions of a specific language in order to exploratorily investigate a problem space in search of the kind of solutions which are most natural or cognitively ergonomic to it. It is a recurring theme in the seminal MIT textbook Structure and Interpretation of Computer Programs, which uses Scheme, a dialect of Lisp, as a framework for constructing new languages.
Explanation
For example, consider modelling an airport inside a computer. The airport has elements like passengers, bookings, employees, budgets, planes, luggage, arrivals and departures, and transit services.
A
An
A functional (e.g. Scheme) programmer might create higher-order functions representing both the elements and behaviors or processes of the airport, modelling the airport as a map of relations between elements in its various domains and those in their assorted codomains. E.g., airports map budgets to bookings schedules, each of which is itself a map of elements to elements: balances of income and expenditure, and balances of arrivals and departures, each of which is, recursively, its own mapping of elements and their own mappings in kind, collectively comprising a set of morphisms: airports are, transitively, the evaluative transformation of a certain spacetime economy.
Finally, a metalinguistic programmer might abstract the problem by creating new
Because the creation of
See also
- Domain-specific language
- Domain-specific multimodeling
- Language-oriented programming
- Metacompiler
- Metalanguage
References
- ^ Structure and Interpretation of Computer Programs, Part 4 — Metalinguistic Abstraction