Alice (programovací jazyk) - Alice (programming language)
![]() | tento článek potřebuje další citace pro ověření.Únor 2011) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Paradigma | Multi-paradigma: rozkazovací způsob, funkční, distribuováno, souběžně |
---|---|
Navrhl | Sárská univerzita |
Poprvé se objevil | 2000 |
Stabilní uvolnění | 1.4 / 3. května 2007 |
Psací disciplína | silný, statický, odvozeno |
OS | Cross-platform |
Licence | MIT |
webová stránka | www |
Ovlivněno | |
ML, Oz |
Alice ML je programovací jazyk navržený laboratoří programovacích systémů[2] na Sárská univerzita, Saarbrücken, Německo. Je to dialekt z Standardní ML, doplněno o podporu pro líné hodnocení, konkurence (multithreading a distribuované výpočty přes vzdálené volání procedur ) a programování omezení.
Přehled
Alice se prodlužuje Standardní ML mnoha způsoby, které ji odlišují od předchůdce. Alice poskytuje funkce souběžnosti jako součást základního jazyka pomocí a budoucnost typ, který představuje hodnotu poskytovanou nezávislým podprocesem provádění. Vlákno, které používá budoucí hodnotu, bude blokováno při pokusu o přístup k hodnotě, dokud vlákno, které ji provádí, nedokončí výpočet. Související koncept je také poskytován nazývaný a slib, umožňující vláknu poskytnout budoucí hodnotu, kterou vypočítá do jiného vlákna. Pro implementaci synchronizace toku dat se používají proměnné typu budoucnosti a příslibu.
Jako Haskell funkční jazyk, Alice poskytuje zařízení umožňující a líné hodnocení strategie v programech, na rozdíl od tradičních nedočkavé hodnocení strategie Standard ML. Zatímco Haskell ve výchozím nastavení používá líný model, Alice ve výchozím nastavení používá dychtivý vyhodnocovací model, který potřebuje explicitní programovací příkaz pro výpočet k línému vyhodnocení.
Implementace Alice ze Sárské univerzity používá Simple Extensible Abstract Machine (SEAM) virtuální stroj. to je svobodný software a funkce just-in-time kompilace na bytecode a nativní kód pro architektura x86.
Rané verze Alice běžely na virtuálním stroji (VM) Mozart Programming System (Oz), což umožňovalo propojení mezi Alice a Oz kód.
Alicino vzdálené volání procedur závisí na virtuálním stroji, protože může odesílat kód, který se má vypočítat z jednoho počítače do druhého.
Příklad
Alice rozšiřuje Standard ML o několik primitiv pro líné hodnocení a souběžnost. Například vlákna lze vytvářet pomocí potěr
klíčové slovo. Zvažte naivní algoritmus pro výpočet Fibonacciho čísla:
zábava fib 0 = 0 | fib 1 = 1 | fib n = fib(n-1) + fib(n-2);
Pro velké hodnoty n
, fib n
výpočet bude trvat dlouho. Tento výpočet lze provést v samostatném vlákně pomocí
val X = potěr fib n;
Proměnná X
je nyní vázán na tzv budoucnost. Když operace vyžaduje hodnotu X
blokuje, dokud není vlákno provedeno výpočtem. Pro využití paralelismu lze definovat fib takto:
zábava fib 0 = 0 | fib 1 = 1 | fib n = potěr fib(n-1) + fib(n-2);
Viz také
Reference
- ^ Alice DE: Univerzita v Sársku
- ^ „Laboratoř programovacích systémů“. Archivovány od originál dne 2006-10-05. Citováno 2006-08-08.