ML — функциональный язык программирования общего назначения,
разработанный Робином Милнером (Robin Milner) и другими в поздних
1970-ых в Университете Эдинбурга; синтаксис этого языка создан под
влиянием ISWIM.

Исторически ML расшифровывается как MetaLanguage (метаязык), т. к. он был использован для разработки тактики вывода автоматических доказательств теорем LCF
(язык, для которого ML был метаязыком — pplambda, комбинация исчисления
предикатов первого порядка и полиморфного λ-исчисления с простой
типизацией).

Известен благодаря использованию алгоритма вывода типов
Хиндли-Милнера (Hindley-Milner type inference algorithm), который может
вычислять тип большинства значений без потребности в экстенсивной
аннотации типов, часто критикуемой в таких языках, как Java.

Перечислим наиболее важные черты ML:

  • ML является функциональным языком программирования. Функции
    являются полноправными объектами: они могут передаваться в качестве
    аргументов, вырабатываться в качестве результата и храниться в
    переменных. Основной способ организации управления в программах на ML -
    рекурсивное применение функций
  • ML является интерактивным языком. Каждое введенное
    предложение анализируется, компилируется и исполняется, и значение,
    полученное в результате исполнения предложения, вместе с его типом
    выдается пользователю

  • ML является строго типизированным языком. Каждое допустимое выражение имеет тип, который автоматически определяется

  • ML имеет полиморфную систему типов. Каждое допустимое предложение языка
    обладает однозначно определяемой наиболее общей типизацией, которая
    определяет контексты, в которых предложение может быть использовано.
  • ML поддерживает абстрактные типы данных. Абстрактные
    типы весьма полезный механизм в модульном программировании. Новые типы
    данных могут быть определены вместе с набором операций над значениями
    этих типов
  • в ML области действия идентификаторов определяются
    статически. Смысл всех идентификаторов в программе определяется
    статически, что позволяет создавать более модульные и более эффективные
    программы

  • ML содержит надежно типизированный механизм обработки исключительных событий

  • ML содержит средства разбиения программ на модули, обеспечивающие возможность разработки больших программ по частям

  • CAML

  • Standard ML




  • Конструктор сайтов - uCoz
    Copyright MyCorp © 2024