Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

ML

Матеріал з Вікіпедії — вільної енциклопедії.
У Вікіпедії є статті про інші значення цього терміна:ML (значення).
ML
Парадигмапроцедурне програмування, функційне програмування і імперативне програмування Редагувати інформацію у Вікіданих
Дата появи1973
ТворціРобін Мілнер та ін. -Единбурзький університет
РозробникРобін Мілнер Редагувати інформацію у Вікіданих
Система типізаціїстрога,статична,вивід типів
ДіалектиStandard ML,Caml Light,OCaml,F#,LazyML,OcaMl
Під впливом відISWIMd Редагувати інформацію у Вікіданих
Вплинула наMiranda,Haskell,Cyclone,Nemerle,C++,Elm

ML (Meta Language) — сімейство строго типізованих мов функціонального програмування з розвиненоюполіморфною системою типів і модулями, що параметризуються. Подібна система типів була раніше запропонована Роджером Гіндлі у1969 році і зараз[коли?] часто називається системою Гіндлі-Мілнера. Мови даного сімейства не є чистими функціональними мовами, тому що включають і імперативні інструкції. ML викладається у багатьох західних університетах (в деяких навіть як першамова програмування).

Передумови

[ред. |ред. код]

В1963 уДжон Алан Робінсон реалізував метод автоматичного доведення теорем, що отримав назву«принцип резолюції». Ідея цього методу належитьЖаку Ербрану, і запропонована у1930. Робінсон розробив ефективний з обчислювальної точки зоруалгоритм уніфікації, що є основою методу. Так з'явилася мова ML, створена дляавтоматичного доведення теорем, але як виявилося придатна і як мова програмування загального призначення.

Особливості

[ред. |ред. код]

В основі строгої і статичної системи типів мови лежитьлямбда-числення, до якого доданастрога типізація. Строга система типів робить можливості для оптимізації, тому незабаром з'являєтьсякомпілятор мови. В системі типів Гіндлі-Мілнера обмежено поліморфна система типів, де більшість типів виразів може бутививедено автоматично. Це дає можливість програмісту не описувати явно типи функцій, але зберегти строгий контроль типів.

Приклад

[ред. |ред. код]

Обчисленняфакторіалу на ML:

fun fac(n) = if n = 0 then 1 else n * fac(n-1);

Див. також

[ред. |ред. код]

Посилання

[ред. |ред. код]
Рівень
Низькорівневі
Високорівневі
Загального
призначення
Серверні
Запитів до баз
даних[суперечливо 1]
Розмітки тавекторної
графіки
[суперечливо 1]
Синхронні
Символьних та
чисельних обчислень
Квантових обчислень
Логічні
Академічні
Езотеричні
  1. абНемає загальноприйнятого рішення, чи вважати усі ці мови саме мовами програмування


Мова програмуванняЦе незавершена стаття промови програмування.
Ви можетедопомогти проєкту,виправивши або дописавши її.
Отримано зhttps://uk.wikipedia.org/w/index.php?title=ML&oldid=46276118
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2026 Movatter.jp