Мультипарадигменный язык программирования

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

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

В широком смысле под мультипарадигменным языком могут понимать всякий язык, который поддерживает больше чем одну парадигму программирования; но такое определение оказывается недостаточно точным в силу того, что само понятие парадигмы программирования различные авторы определяют по-разному. Например, если считать парадигмами программирования рекурсию, структурное программирование и присваивания, то окажется, что под рассматриваемое определение подойдут едва ли не все существующие языки программирования, за исключением некоторых особых случаев (например, языка Haskell, в котором нет присваивания в привычном виде).

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

Один из наиболее амбициозных примеров — Oz, который является логическим языком, функциональным языком, объектно-ориентированным языком, языком конкурентного (параллельного) программирования. Oz был разработан за десять лет, его цель — объединить понятия, которые традиционно связаны с различными программными парадигмами.

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

Языки, изначально поддерживающие функциональную и объектно-ориентированную парадигмы — Dylan и Scala. Функциональную и процедурную парадигмы объединяют APL и Rust. Функциональная и логическая парадигмы воплощены в AFL, Curry и Mercury.