Alice — мова функціонального програмування, розроблена в лабораторії в Саарландському університеті. Це відгалуження мови Standard ML, доповнене лінивими обчисленнями, конкурентністю (багатонитевістю і розподіленими обчисленнями на основі виклику віддалених процедур) і програмування в обмеженнях.
Реалізація Alice Саарландського університету використовує віртуальну машину (Simple Extensible Abstract Mashine). Вона відноситься до вільного програмного забезпечення і використовує компіляцію «на льоту» як в байт-код, так і в рідний код для архітектури x86. Ранні версії Alice працювали в віртуальній машині /Oz, надаючи можливість взаємодії кода на Alice і на Oz.
Можливість виклику віддалених процедур в Alice залежить від віртуальної машини, тому що вона використовує безпосередню пересилку виконуваного коду з одного комп'ютера на інший. Alice доповнює Standart ML рядом примітивів для екзотичної моделі нестрогих обчислень, за допомогою яких легко реалізовується паралелізм. Потоки можуть бути створені за допомогою зарезервованого слова spawn.
Приклад
Розглянемо нативний алгоритм для знаходження чисел Фібоначчі:
fun fib 0 = 0 | fib 1 = 1 | fib n = fib(n-1) + fib(n-2);
Для більших значень n вираз fib n
займе багато часу. Цей вираз може бути виконаний в окремому потоці за допомогою:
val x = spawn(fib(n));
Тепер змінна x зв'язана з так званим майбутнім значенням. Коли будь-якій операції буде потрібне значення x, вона буде заблокована доти, доки потік не закінчить роботу. Для кращого використання паралелізму можна буде визначити fib
так:
fun fib 0 = 0 | fib 1 = 1 | fib n = spawn fib(n-1) + fib(n-2);
Див. також
Посилання
- Alice [ 4 січня 2017 у Wayback Machine.]
- Programming Systems Lab [ 2 вересня 2016 у Wayback Machine.]
- Saarland University [ 23 листопада 2020 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Alice mova funkcionalnogo programuvannya rozroblena v laboratoriyi v Saarlandskomu universiteti Ce vidgaluzhennya movi Standard ML dopovnene linivimi obchislennyami konkurentnistyu bagatonitevistyu i rozpodilenimi obchislennyami na osnovi vikliku viddalenih procedur i programuvannya v obmezhennyah Realizaciya Alice Saarlandskogo universitetu vikoristovuye virtualnu mashinu Simple Extensible Abstract Mashine Vona vidnositsya do vilnogo programnogo zabezpechennya i vikoristovuye kompilyaciyu na lotu yak v bajt kod tak i v ridnij kod dlya arhitekturi x86 Ranni versiyi Alice pracyuvali v virtualnij mashini Oz nadayuchi mozhlivist vzayemodiyi koda na Alice i na Oz Mozhlivist vikliku viddalenih procedur v Alice zalezhit vid virtualnoyi mashini tomu sho vona vikoristovuye bezposerednyu peresilku vikonuvanogo kodu z odnogo komp yutera na inshij Alice dopovnyuye Standart ML ryadom primitiviv dlya ekzotichnoyi modeli nestrogih obchislen za dopomogoyu yakih legko realizovuyetsya paralelizm Potoki mozhut buti stvoreni za dopomogoyu zarezervovanogo slova spawn PrikladRozglyanemo nativnij algoritm dlya znahodzhennya chisel Fibonachchi fun fib 0 0 fib 1 1 fib n fib n 1 fib n 2 Dlya bilshih znachen n viraz fib n zajme bagato chasu Cej viraz mozhe buti vikonanij v okremomu potoci za dopomogoyu val x spawn fib n Teper zminna x zv yazana z tak zvanim majbutnim znachennyam Koli bud yakij operaciyi bude potribne znachennya x vona bude zablokovana doti doki potik ne zakinchit robotu Dlya krashogo vikoristannya paralelizmu mozhna bude viznachiti fib tak fun fib 0 0 fib 1 1 fib n spawn fib n 1 fib n 2 Div takozhStandard MLPosilannyaAlice 4 sichnya 2017 u Wayback Machine Programming Systems Lab 2 veresnya 2016 u Wayback Machine Saarland University 23 listopada 2020 u Wayback Machine