ML (Meta Language) — сімейство строго типізованих мов функціонального програмування з розвиненою поліморфною системою типів і модулями, що параметризуються. Подібна система типів була раніше запропонована Роджером Гіндлі у 1969 році і зараз[] часто називається системою Гіндлі-Мілнера. Мови даного сімейства не є чистими функціональними мовами, тому що включають і імперативні інструкції. ML викладається у багатьох західних університетах (в деяких навіть як перша мова програмування).
ML | |
---|---|
Парадигма | процедурне програмування, функційне програмування і імперативне програмування |
Дата появи | 1973 |
Творці | Робін Мілнер та ін. - Единбурзький університет |
Розробник | Робін Мілнер |
Система типізації | строга, статична, вивід типів |
Діалекти | Standard ML, , OCaml, F#, , |
Під впливом від | d |
Вплинула на | , Haskell, Cyclone, Nemerle, , Elm |
Передумови
В 1963 у Джон Алан Робінсон реалізував метод автоматичного доведення теорем, що отримав назву . Ідея цього методу належить Жаку Ербрану, і запропонована у 1930. Робінсон розробив ефективний з обчислювальної точки зору , що є основою методу. Так з'явилася мова ML, створена для автоматичного доведення теорем, але як виявилося придатна і як мова програмування загального призначення.
Особливості
В основі строгої і статичної системи типів мови лежить лямбда-числення, до якого додана строга типізація. Строга система типів робить можливості для оптимізації, тому незабаром з'являється компілятор мови. В системі типів Гіндлі-Мілнера обмежено поліморфна система типів, де більшість типів виразів може бути виведено автоматично. Це дає можливість програмісту не описувати явно типи функцій, але зберегти строгий контроль типів.
Приклад
Обчислення факторіалу на ML:
fun fac(n) = if n = 0 then 1 else n * fac(n-1);
Див. також
Посилання
- Стаття ML [ 10 травня 2013 у Wayback Machine.] у — енциклопедії мов програмування(рос.)
Це незавершена стаття про мови програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U Vikipediyi ye statti pro inshi znachennya cogo termina ML Meta Language simejstvo strogo tipizovanih mov funkcionalnogo programuvannya z rozvinenoyu polimorfnoyu sistemoyu tipiv i modulyami sho parametrizuyutsya Podibna sistema tipiv bula ranishe zaproponovana Rodzherom Gindli u 1969 roci i zaraz koli chasto nazivayetsya sistemoyu Gindli Milnera Movi danogo simejstva ne ye chistimi funkcionalnimi movami tomu sho vklyuchayut i imperativni instrukciyi ML vikladayetsya u bagatoh zahidnih universitetah v deyakih navit yak persha mova programuvannya MLParadigma procedurne programuvannya funkcijne programuvannya i imperativne programuvannyaData poyavi 1973Tvorci Robin Milner ta in Edinburzkij universitetRozrobnik Robin MilnerSistema tipizaciyi stroga statichna vivid tipivDialekti Standard ML OCaml F Pid vplivom vid dVplinula na Haskell Cyclone Nemerle C ElmPeredumoviV 1963 u Dzhon Alan Robinson realizuvav metod avtomatichnogo dovedennya teorem sho otrimav nazvu Ideya cogo metodu nalezhit Zhaku Erbranu i zaproponovana u 1930 Robinson rozrobiv efektivnij z obchislyuvalnoyi tochki zoru sho ye osnovoyu metodu Tak z yavilasya mova ML stvorena dlya avtomatichnogo dovedennya teorem ale yak viyavilosya pridatna i yak mova programuvannya zagalnogo priznachennya OsoblivostiV osnovi strogoyi i statichnoyi sistemi tipiv movi lezhit lyambda chislennya do yakogo dodana stroga tipizaciya Stroga sistema tipiv robit mozhlivosti dlya optimizaciyi tomu nezabarom z yavlyayetsya kompilyator movi V sistemi tipiv Gindli Milnera obmezheno polimorfna sistema tipiv de bilshist tipiv viraziv mozhe buti vivedeno avtomatichno Ce daye mozhlivist programistu ne opisuvati yavno tipi funkcij ale zberegti strogij kontrol tipiv PrikladObchislennya faktorialu na ML fun fac n if n 0 then 1 else n fac n 1 Div takozhSistema FPosilannyaStattya ML 10 travnya 2013 u Wayback Machine u enciklopediyi mov programuvannya ros Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi