ML
ML (Meta Language) — сімейство строго типізованих мов функціонального програмування з розвиненою поліморфною системою типів і модулями що параметризуються. Подібна система типів була раніше запропонована Роджером Гіндлі у 1969 році і зараз[коли?] часто називається системою Гіндлі-Мілнера. Мови даного сімейства не є чистими функціональними мовами, тому що включають і імперативні інструкції. ML викладається у багатьох західних університетах (в деяких навіть як перша мова програмування).
ML | |
---|---|
Парадигма | Процедурне програмування, Функційне програмування і Імперативне програмування |
Дата появи | 1973 |
Творці | Робін Мілнер та ін. - Единбурзький університет |
Розробник | Робін Мілнер |
Система типізації | строга, статична, вивід типів |
Діалекти | Standard ML, Caml Light, OCaml, F#, LazyML, OcaMl |
Під впливом від | ISWIMd |
Вплинула на | Miranda, Haskell, Cyclone, Nemerle, C++, Elm |
Передумови
В 1963 у Джон Алан Робінсон реалізував метод автоматичного доведення теорем, що отримав назву «принцип резолюції». Ідея цього методу належить Жаку Ербрану, і запропонована у 1930. Робінсон розробив ефективний з обчислювальної точки зору алгоритм уніфікації, що є основою методу. Так з'явилася мова ML, створена для автоматичного доведення теорем, але як виявилося придатна і як мова програмування загального призначення.
Особливості
В основі строгої і статичної системи типів мови лежить лямбда-числення, до якого додана строга типізація. Строга система типів робить можливості для оптимізації, тому незабаром з'являється компілятор мови. В системі типів Гіндлі-Мілнера обмежено поліморфна система типів, де більшість типів виразів може бути виведено автоматично. Це дає можливість програмісту не описувати явно типи функцій, але зберегти строгий контроль типів.
Посилання
- Стаття ML у Прогопедіі — енциклопедії мов програмування(рос.)
- https://web.archive.org/web/20120718184406/http://schools.keldysh.ru/sch444/museum/LANR/ml.htm