Металингвистическая абстракция



Металингвистическая абстракция в информатике — это процесс решения сложных проблем путём создания нового языка или словарного запаса, чтобы лучше понять проблему пространства. Этот вопрос подробно описан в учебнике МТИ «Структура и интерпретация компьютерных программ», который рекомендует использовать язык Scheme как основу для создания новых языков.

Объяснение

Рассмотрим, например, моделирование аэропорта с помощью компьютера. В процедурных языках программирования (например, Си) программист будет создавать структуры данных для представления элементов аэропорта и функции для работы с данными этих структур. В объектно-ориентированных языках программирования (например, C++) программист может создавать объекты для представления элементов аэропорта с методами, которые представляют их поведение и функционирование. В функциональных ЯП (например Scheme) он создаст функцию, представляющую модель поведения элементов инфраструктуры аэропорта. Металингвистический же программист решит проблемы путём создания нового языка моделирования аэропорта с собственными примитивами и операциями. В данный язык можно включить любые или все из вышеперечисленных методов, в зависимости от поставленной задачи.

Поскольку создание функциональной металингвистической абстракции в нефункциональных языках может быть громоздким, а также из-за синтаксической гибкости функциональных макросов, металингвистическое программирование чаще всего осуществляется на функциональной основе.