Алиса (язык программирования)

редактировать
Алиса
Парадигма Многопарадигма : императив, функциональные, распределенные, параллельные
Разработано Саарландским университетом
Впервые появилось2000; 20 лет назад (2000 г.)
Стабильный выпуск 1.4 / 3 мая 2007 г.; 13 лет назад (2007-05-03)
Дисциплина набора текста сильная, статическая, предполагаемая
OS Межплатформенная
Лицензия MIT
Веб-сайтwww.ps.uni-saarland.de / alice
Под влиянием
ML, Oz

Алисы ML - это язык программирования разработан Лабораторией систем программирования Саарландского университета, Саарбрюккен, Германия. Это диалект из Standard ML, дополненный поддержкой ленивого вычисления, параллелизма (многопоточность и распределенные вычисления через вызовы удаленных процедур ) и программирование в ограничениях.

Содержание

  • 1 Обзор
  • 2 Пример
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки

Обзор

Алиса расширяет Standard ML несколькими способами, которые отличает его от его предшественника. Алиса предоставляет функции параллелизма как часть базового языка за счет использования типа future, который представляет значение, предоставляемое независимым потоком выполнения. Поток, который использует будущее значение, будет блокироваться при попытке доступа к значению до тех пор, пока выполняющий его поток не завершит вычисление. Также предоставляется связанная концепция, называемая обещанием, позволяющая потоку предоставлять будущее значение, которое он будет вычислять другому потоку. Переменные типа Future и Promise используются для реализации синхронизации потока данных.

Подобно функциональному языку Haskell, Алиса предоставляет средства, позволяющие использовать стратегию ленивого вычисления в программах, в отличие от традиционной стратегии нетерпеливого вычисления стандарта Standard ML. В то время как Haskell по умолчанию использует ленивую модель, Алиса по умолчанию использует модель нетерпеливого вычисления, требуя явного программного оператора для ленивого вычисления вычисления.

Реализация Алисы из Саарландского университета использует простую расширяемую абстрактную машину (SEAM) виртуальную машину. Это бесплатное программное обеспечение, которое включает своевременную компиляцию в байт-код и собственный код для архитектуры x86.

Ранние версии Алисы работали на виртуальной машине (ВМ) Системы программирования Моцарта (Oz), что позволяло взаимодействовать между Алисой и кодом Oz.

Удаленный вызов процедуры Алисы зависит от виртуальной машины, потому что она может отправлять код для вычисления с одного компьютера на другой.

Пример

Алиса расширяет Standard ML несколькими примитивами для отложенного вычисления и параллелизма. Например, потоки могут быть созданы с использованием ключевого слова spawn. Рассмотрим наивный алгоритм вычисления чисел Фибоначчи :

fun fib 0 = 0 | fib 1 = 1 | фиб п = фиб (п-1) + фиб (п-2);

Для больших значений n, fib nпотребуется много времени для вычисления. Это вычисление может быть выполнено в отдельном потоке с помощью

val x = spawn fib n;

Переменная xтеперь привязана к так называемому будущему. Когда для операции требуется значение x, она блокируется, пока поток не завершит вычисление. Чтобы использовать параллелизм, можно даже определить fib следующим образом:

fun fib 0 = 0 | fib 1 = 1 | fib n = создать fib (n-1) + fib (n-2);

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-10 23:08:59
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте