Языки функционального программирования - Функциональные языки программирования

В этом разделе приведено краткое описание некоторых языков функционального программирования (очень немногих). Дополнительную информацию можно почерпнуть, просмотрев сайты, перечисленные в следующем разделе.

Ѕ Lisp (Listprocessor). Считается первым функциональным языком программирования. Нетипизирован. Содержит массу императивных свойств, однако в общем поощряет именно функциональный стиль программирования. При вычислениях использует вызов по значению. Существует объектно-ориентированный диалект языка - CLOS.

Ѕ ISWIM (If you See What I Mean). Функциональный язык-прототип. Разработан Ландиным в 60-х годах для демонстрации того каким может быть язык функционального программирования. Вместе с языком Ландин разработал и специальную виртуальную машину для исполнения программ на ISWIM-е. Эта виртуальная машина, основанная на вызове-по-значению, получила название SECD-машины. На синтаксисе языка ISWIM базируется синтаксис многих функциональных языков. На синтаксис ISWIM похож синтаксис ML, особенно Caml.

Ѕ Scheme. Диалект, Lisp-а, предназначенный для научных исследований в области компьютерной науки. При разработке Scheme был сделан упор на элегантность и простоту языка. Благодаря этому язык получился намного меньше, чем CommonLisp.

Ѕ ML (MetaLanguage). Семейство строгих языков с развитой полиморфной системой типов и параметризуемыми модулями. ML преподается во многих западных университетах (в некоторых даже как первый язык программирования).

Ѕ Standard ML. Один из первых типизированных языков функционального программирования. Содержит некоторые императивные свойства, такие как ссылки на изменяемые значения и поэтому не является чистым. При вычислениях использует вызов-по-значению. Очень интересная реализация модульности. Мощная полиморфная система типов. Последний стандарт языка - Standard ML-97, существует формальное математическое определения синтаксиса, статической и динамической семантик языка.

Ѕ Caml Light и Objective Caml. Как и Standard ML принадлежит к семейству ML. ObjectiveCaml отличается от CamlLight в основном поддержкой классического объектно-ориентированного программирования. Также, как и Standard ML строгий, но имеет некоторую встроенную поддержку отложенных вычислений.

Ѕ Miranda. Разработан Дэвидом Тернером, в качестве стандартного функционального языка, использовавшего отложенные вычисления. Имеет строгую полиморфную систему типов. Как и ML преподавается во многих университетах. Оказал большое влияние на разработчиков языка Haskell.

Ѕ Haskell. Один из самых распространенных нестрогих языков. Имеет очень развитую систему типизации. Несколько хуже (на мой взгляд) разработана система модулей. Последний стандарт языка - Haskell 98.

Ѕ Gofer (GOodFor Equational Reasoning). Упрощенный диалект Haskell. Предназначен для обучения функциональному программированию.

Ѕ Clean. Специально предназначен для параллельного и распределенного программирования. По синтаксису напоминает Haskell. Чистый. Использует отложенные вычисления. С компилятором поставляется набор библиотек (I/O libraries), позволяющие программировать графический пользовательский интерфейс под Win32 или MacOS.

Похожие статьи




Языки функционального программирования - Функциональные языки программирования

Предыдущая | Следующая