Alice (язык программирования)

Alice (язык программирования)
Alice
Alice.gif
Семантика:

функциональный

Тип исполнения:

компиляция в байткод для виртуальной машины

Появился в:

2002

Автор(ы):

Programming Systems Lab, Saarland University

Типизация данных:

?

Основные реализации:

Alice (единственная)

Испытал влияние:

Standard ML, Oz

Aliceязык функционального программирования, разработанный в лаборатории Programming Systems Lab в Саарском университете (англ.)русск.. Это диалект языка Standard ML, дополненный ленивыми вычислениями, конкурентностью (многопоточностью и распределёнными вычислениями на основе вызова удалённых процедур) и программированием в ограничениях.

Реализация Alice Саарского университета использует виртуальную машину SEAM (Simple Extensible Abstract Mashine). Она является свободным программным обеспечением и использует компиляцию «на лету» как в байт-код, так и в родной код для архитектуры x86.

Ранние версии Alice работали в виртуальной машине Mozart/Oz, предоставляя возможность взаимодействия кода на Alice и на Oz.

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

Пример

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

fun fib 0:= 0
  | fib 1:= 1
  | fib n:= fib(n-1) + fib(n-2);

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

val:= = spawn(fib(n));

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

fun fib 0:= 0
  | fib 1:= 1
  | fib n:= spawn fib(n-1) + fib(n-2);

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Alice (язык программирования)" в других словарях:

  • Oz (язык программирования) — Oz Семантика: функциональный, процедурный, декларативный, объектно ориентированный, вычисления с ограничениями, Н модели, параллельные вычисления Тип исполнения: компилируемый Появился в: 1991 Автор(ы): Gert Smolka his students Релиз …   Википедия

  • Оз (язык программирования) — Oz Семантика: функциональный, процедурный, декларативный, объектно ориентированный, вычисления с ограничениями, Н модели, параллельные вычисления Тип исполнения: компилируемый Появился в: 1991 г. Автор(ы): Gert Smolka his students Последняя… …   Википедия

  • Mozart (язык программирования) — У этого термина существуют и другие значения, см. Моцарт (значения). Mozart  мультиплатформенная интерпретирующая реализация языка программирования Oz разработанная Mozart Consortium. Реализует такие парадигмы программирования как Объектно… …   Википедия

  • Компилируемый язык программирования — Компилируемый язык программирования  язык программирования, исходный код которого преобразуется компилятором в машинный код и записывается в файл, с особым заголовком и/или расширением, для последующей идентификации этого файла, как… …   Википедия

  • Alice — Alice: ALICE  эксперимент на LHC A.L.I.C.E.  виртуальный собеседник, программа, способная вести диалог с человеком на естественном языке. Alice in Chains  американская рок группа. Alice in Chains  третий студийный альбом… …   Википедия

  • American McGee’s Alice — Обложка оригинальной американской версии игры под Windows Разработчик Rogue Entertainment …   Википедия

  • Алиса — В Викисловаре есть статья «Алиса» …   Википедия

  • Алиса (ПО) — У этого термина существуют и другие значения, см. Алиса. Alice Базовая анимация конькобежца …   Википедия

  • Визуальное программирование — Возможно, эта статья содержит оригинальное исследование. Добавьте ссылки на источники, в противном случае она может быть выставлена на удаление. Дополнительные сведения могут быть на странице обсуждения. (25 мая 2011) …   Википедия

  • Графическое программирование — Визуальное программирование  способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания ее текста. Языки визуального программирования могут быть дополнительно классифицированы в зависимости от типа и степени… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»