Concept

Metalinguistic abstraction

Résumé
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. 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 procedural (e.g. C) programmer might create data structures to represent these elements of an airport and procedures or routines to operate on those data structures and update them, modelling the airport as a series of processes undergone by its various elements. E.g., bookings is a database used to keep passengers and planes synchronised via updates logged as arrivals and departures, budgets are similar but for money: airports are a lot of things that need to get done in the right order to see that passengers get where they're going. An object-oriented (e.g. Java) programmer might create objects to represent the elements of the airport with methods which represent their behaviors, modelling the airport as a collection of possibly related things which characteristically interact with each other. E.g., passengers, employees, and planes possess location attributes which can be modified via applicable transit methods: transit services have methods to bring employees and passengers to and from airports, planes have methods to bring passengers along with themselves between different airports: airports are a grouping of things working together as intended. A functional (e.g.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.