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

Алиса
ПарадигмаМультипарадигма: императив, функциональный, распределен, одновременный
РазработаноСаарский университет
Впервые появился2000; 20 лет спустя (2000)
Стабильный выпуск
1.4 / 3 мая 2007 г.; 13 лет назад (2007-05-03)
Печатная дисциплинасильный, статический, предполагаемый
Операционные системыКроссплатформенность
ЛицензияМассачусетский технологический институт
Интернет сайтwww.ps.uni-saarland.de/ Алиса[1]
Под влиянием
ML, Унция

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

Обзор

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

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

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

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

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

Пример

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

 весело выдумать 0 = 0   | выдумать 1 = 1   | выдумать п = выдумать(н-1) + выдумать(н-2);

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

 вал Икс = порождать выдумать п;

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

 весело выдумать 0 = 0   | выдумать 1 = 1   | выдумать п = порождать выдумать(н-1) + выдумать(н-2);

Смотрите также

Рекомендации

  1. ^ Алиса, DE: Саарский университет
  2. ^ «Лаборатория систем программирования». Архивировано из оригинал на 2006-10-05. Получено 2006-08-08.

внешняя ссылка