Metalinguistic abstraction

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.The airport has elements like passengers, bookings, employees, budgets, planes, luggage, arrivals and departures, and transit services.Finally, a metalinguistic programmer might abstract the problem by creating new domain-specific languages for modelling airports, with peculiar primitives and types for doing so.Because the creation of functional metalinguistic abstractions in non-functional languages can be cumbersome while the reverse is usually trivial (e.g. it is generally much easier to take a side-effect-free programming abstraction and simply add effects to it than it is to take a stateful abstraction and work around or encapsulate its propagation of state), and because of the syntactic flexibility and referential safety of functional macros, metalinguistic programming is mostly idiomatic of functional programming languages.
computer sciencelanguageStructure and Interpretation of Computer ProgramsSchemeproceduralobject-orientedobjectsmethodsfunctionalhigher-order functionsdomain-specific languagesprimitivesnon-functionalside-effect-freereferential safetyfunctional macrosDomain-specific languageDomain-specific multimodelingLanguage-oriented programmingMetacompilerMetalanguageMetalinguistic awareness