Мультипарадигменное программирование

Мультипарадигменное программирование — программирование с одновременным использованием множества парадигм.

Основные подходы к организации мультипарадигменного программирования:

  • создание нового языка программирования,
  • расширение существующего языка программирования,
  • встраиваемые интерпретаторы,
  • расширяемые интерпретаторы,
  • трансляция из одного языка в другой,
  • сборка модулей, написанных на разных языках программирования,
  • библиотечное расширение существующего языка программирования.

Частным случаем последнего подхода является метод непосредственной интеграции, реализованный в библиотеке InteLib.

Инструменты

править

Наиболее известные мультипарадигменные языки программирования — Common Lisp, Oz, JavaScript.

Одним из наиболее успешных примеров расширения существующего языка программирования с целью превращения его в мультипарадигменный инструмент является язык C++.

Встраивание интерпретаторов часто применяется для формирования SQL-запросов к базам данных из программ, написанных на языках программирования общего назначения, таких как Си или C++. Существуют встраиваемые интерпретаторы таких языков, как Tcl, Лисп, Scheme.

Известный пример расширяемого интерпретатора — Tcl, допускающий подгрузку динамических библиотек, написанных на Си.

Трансляция из одного языка в другой (как правило, язык C) применяется во многих реализациях языка Scheme, что позволяет состыковать части, написанные на Scheme, с частями, написанными на Си и C++.

Одним из примеров библиотеки, предназначенной для импорта сторонней парадигмы в язык программирования, изначально не поддерживающий её, является FC++[1]. Известны библиотеки, предназначенные для импорта в C++ комплекса парадигм, характерного для Лиспа: Lisp Plus Plus[2], InteLib[3] и другие.

Примечания

править
  1. Сайт библиотеки FC++. Дата обращения: 21 декабря 2007. Архивировано из оригинала 19 декабря 2007 года.
  2. Библиотека Lisp Plus Plus. Дата обращения: 21 декабря 2007. Архивировано 2 января 2008 года.
  3. Библиотека InteLib. Дата обращения: 17 июля 2022. Архивировано 6 апреля 2022 года.