Snadnost (programovací jazyk) - Ease (programming language)

Ulehčit
Paradigmata Souběžné , komunikující sekvenční procesy
Navrhl Steven Ericsson-Zenith
Poprvé se objevil 1991 ; Před 28 lety ( 1991 )
Psací disciplína Silný
Plošina Paralelní
Ovlivněno
occam

Snadnost je univerzální paralelní programovací jazyk . Je navržen Stevenem Ericssonem-Zenithem, výzkumným pracovníkem na Yale University , Institute for Advanced Science & Engineering v Silicon Valley v Kalifornii, Ecole Nationale Supérieure des Mines de Paris a Pierre a Marie Curie University , vědecké oddělení Sorbonna .

Kniha Process Interaction Models je specifikací jazyka Ease. Ease kombinuje procesní konstrukce komunikujících sekvenčních procesů (CSP) s logicky sdílenými datovými strukturami nazývanými kontexty . Kontexty jsou paralelní datové typy, které jsou konstruovány procesy a poskytují způsob interakce procesů.

Jazyk zahrnuje dva konstruktory procesů.

Spolupráce obsahuje explicitní synchronizace bariérou a je psáno:

Pokud jeden proces skončí před druhým, bude čekat, dokud nebudou dokončeny další procesy.

Podřízenost vytváří proces, který sdílí kontexty , které jsou co do rozsahu, kdy vytvořil a končí, když kompletní (to nebude čekat na ostatní procesy) a je napsáno:

Podřízené procesy se zastaví, pokud se pokusí komunikovat s kontextem, který byl dokončen, protože nadřazený proces byl zastaven. To umožňuje vytvářet spekulativní procesy, které se dokončí, pokud jejich výsledek není nutný.

Výkonná syntaxe replikace umožňuje vytvoření více procesů. Například,

vytváří n synchronizovaných procesů, každý s lokální konstantou i .

Procesy nemohou sdílet místní proměnné a spolupracovat na konstrukci sdílených kontextů. Určité typy kontextu, nazývané prostředky , zajišťují sémantiku volání a odpovědi.

V kontextech existují čtyři funkce:

  • read (context, variable) - zkopíruje hodnotu ze sdíleného kontextu do proměnné .
  • write (context, expression) - zkopíruje hodnotu výrazu do sdíleného kontextu .
  • put (kontext, název) - přesune hodnotu vázanou na název do sdíleného kontextu . Hodnota názvu je následně nedefinovaná .
  • get (kontext, název) - přesune hodnotu z kontextu a váže ji na název . Hodnota je odstraněna z kontextu.

Kontextové typy jsou Singletons , Bags nebo Streams a mohou být indexovaná pole.

Snadnost má sémiotickou definici . To znamená, že odpovídá za to, jaký má jazyk vliv na programátora a jak vyvíjejí algoritmy. Jazyk byl navržen tak, aby usnadnil vývoj paralelních programů.

Reference