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

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

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

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

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

Инструменты

Наиболее известные мультипарадигменные языки программирования — Common Lisp, Oz, Leda, 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
  3. Библиотека InteLib
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.