UNITY (programovací jazyk) - UNITY (programming language) - Wikipedia
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
JEDNOTA je programovací jazyk vytvořený pomocí K. Mani Chandy a Jayadev Misra pro jejich knihu Návrh paralelního programu: Nadace. Je to teoretický jazyk, na který se zaměřujeme co, namísto kde, když nebo jak. Jazyk neobsahuje žádnou metodu řízení toku a program prohlášení spustit v nedeterministické způsobem, dokud příkazy nepřestanou způsobovat změny během provádění. To umožňuje, aby programy běžely po neomezenou dobu, jako jsou například automatické systémy řízení letu nebo bezpečnostní systémy elektrárny, stejně jako programy, které by se normálně ukončily (které zde konvergují k pevný bod ).
Popis
Všechna prohlášení jsou úkoly, a jsou odděleny #
. Příkaz se může skládat z více přiřazení formuláře a, b, c: = x, y, z
nebo a: = x || b: = y || c: = z
. Můžete také mít seznam kvantifikovaných výpisů, <# x, y: výraz :: prohlášení>
, kde x a y jsou náhodně vybrány z hodnot, které splňují výraz. A kvantifikovaný úkol je podobný. v <|| x, y: výraz :: prohlášení >
, prohlášení se provádí současně pro Všechno páry X
a y
které uspokojují výraz.
Příklady
Třídění bublin
Třídění bublin pole porovnáním sousedních čísel a jejich výměnou, pokud jsou ve špatném pořadí. Použitím očekávaný čas, zpracovatelé a očekávaná práce. Důvod, který máte jen vy očekávaný je čas k
je vždy vybráno náhodně z . To lze opravit převrácením k
ručně.
Program bubbleortdeclare n: integer, A: array [0..n-1] of integerinitially n = 20 # <|| i: 0 <= i a ipřiřadit <# k: 0 <= k <2 :: <|| i: i% 2 = k a 0 <= i A [ i + 1]>> konec
Pořadí
Můžete seřadit čas s hodnocením. Potřebuješ procesory, a dělat práce.
Program ranksortdeclare n: integer, A, R: array [0..n-1] of integerinitially n = 15 # <|| i: 0 <= ipřiřadit <|| i: 0 <= i > # <|| i: 0 <= i konec
Floyd – Warshallův algoritmus
Za použití Floyd – Warshallův algoritmus všechny páry nejkratší cesta algoritmus, iterativně zahrneme mezilehlé uzly a dostaneme čas, pomocí zpracovatelé a práce.
Program shortestpathdeclare n, k: integer, D: array [0..n-1, 0..n-1] of integerinitially n = 10 # k = 0 # <|| i, j: 0 <= ipřiřadit <|| i, j: 0 <= i || k: = k + 1, pokud k Můžeme to udělat ještě rychleji. Následující programy počítají nejkratší cestu všech párů čas, pomocí zpracovatelé a práce.
Program shortestpath2declare n: integer, D: array [0..n-1, 0..n-1] of integerinitially n = 10 # <|| i, j: 0 <= ipřiřadit <|| i, j: 0 <= i )> konec Po kole ,
D [i, j]
obsahuje délku nejkratší cesty od na délky . V dalším kole délky , a tak dále.Reference
- K. Mani Chandy a Jayadev Misra (1988) Návrh paralelního programu: Nadace.