Металингвистическая абстракция (Bymglnuifnvmncyvtgx gQvmjgtenx)
Металингвистическая абстракция в информатике — это процесс решения сложных проблем путём создания нового языка или словарного запаса, для лучшего понимания предметной области (проблемы или проблем)[1]. Этот вопрос подробно описан в учебнике МТИ «Структура и интерпретация компьютерных программ»[2], который рекомендует использовать язык Scheme как основу для создания новых языков.
Объяснение
[править | править код]Рассмотрим, например, моделирование аэропорта с помощью компьютера. В процедурных языках программирования (например, Си) программист будет создавать структуры данных для представления элементов аэропорта и функции для работы с данными этих структур. В объектно-ориентированных языках программирования (например, C++) программист может создавать объекты для представления элементов аэропорта с методами, которые представляют их поведение и функционирование. В функциональных ЯП (например Scheme) он создаст функцию, представляющую модель поведения элементов инфраструктуры аэропорта. Металингвистический же программист решит проблемы путём создания нового языка моделирования аэропорта с собственными примитивами и операциями. В данный язык можно включить любые или все из вышеперечисленных методов, в зависимости от поставленной задачи.
Поскольку создание функциональной металингвистической абстракции в нефункциональных языках может быть громоздким, а также из-за синтаксической гибкости функциональных макросов, металингвистическое программирование чаще всего осуществляется на функциональной основе[3].
См. также
[править | править код]- Lisp — пример метаязыка программирования[4]
- Языково-ориентированное программирование
- Парадигмы программирования
- Предметно-ориентированный язык
- Метакомпилятор
Литература
[править | править код]Англоязычная
[править | править код]- Harold Abelson, Gerald Jay Sussman, Julie Sussman. Structure and Interpretation of Computer Programs. — Часть 4, 1996. — 657 с.
- Erik De Corte, Marcia Linn, Heinz Mandl, Lieven Verschaffel. Computer-Based Learning Environments and Problem Solving. — Стр. 69-72, 2013. — 484 с.
- George F. Luger, William A. Stubblefield. Artificial intelligence and the design of expert systems. — Раздел 16, 1989. — 660 с.
- George F. Luger. Artificial Intelligence: Structures and Strategies for Complex Problem Solving. — 2005. — 903 с.
- PLILP '97. Programming Languages: Implementations, Logics, and Programs:. — 1997. — 428 с.
Русская
[править | править код]- Д. П Горский. Вопросы абстракции и образование понятий. — Стр. 135-138: Изд-во Академии наук СССР, 1961. — 350 с.
- Вопросы металингвистики. — Ленинградский государственный университет имени А.А. Жданова. Кафедра структурной и прикладной лингвистики, 1974. — 137 с.
- Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание. — Разделы 14, 15, 16: Вильямс, 2005. — 1060 с.
Ссылки
[править | править код]- МЕТАЯЗЫК КАК СПОСОБ ОБРАЗОВАНИЯ АБСТРАКЦИЙ В КОНКРЕТНО-НАУЧНОМ ПОЗНАНИИ СС-BY-SA
- Глава 4. Металингвистическая абстракция
Примечания
[править | править код]- ↑ Software — Concepts and Tools. Computer science bibliography . Дата обращения: 9 апреля 2016. Архивировано 5 марта 2016 года.
- ↑ Structure and Interpretation of Computer Programs (Абельсон Х., Сассман Д. Д. Структура и интерпретация компьютерных программ Архивная копия от 19 октября 2016 на Wayback Machine)
- ↑ Власовских А. С. История развития предметно-ориентированных языков программирования
- ↑ Искусственный интеллект. Часть 11 (Люгер, Дж. Ф. 2001) . Дата обращения: 9 апреля 2016. Архивировано 30 ноября 2016 года.