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

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

Объяснение

Например, рассмотрите возможность моделирования аэропорта на компьютере. А процедурный (например. C ) программист будет создавать структуры данных для представления элементов аэропорта и процедур или подпрограмм для работы с этими структурами данных. An объектно-ориентированный (например. C ++ ) программист создал бы объекты изобразить элементы аэропорта с методы которые представляют их поведение. А функциональный (например. Схема ) программист создал бы функции высшего порядка представляющие как элементы, так и поведение аэропорта. Программист-металингвист абстрагируется от проблемы, создавая новые встроенные специфичные для домена языки для моделирования аэропорта, со своеобразной примитивы и типы для того, чтобы сделать это естественно. В таком случае язык может включать в себя любые или все вышеперечисленные методы в зависимости от решаемой проблемы.[1]

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

Смотрите также

Рекомендации

  1. ^ Структура и интерпретация компьютерных программ, часть 4 - Металингвистическая абстракция