PLEXIL - PLEXIL
![]() | tento článek vyžaduje pozornost odborníka na informatiku.Únor 2009) ( |
Paradigma | Multi-paradigma |
---|---|
Navrhl | NASA |
Poprvé se objevil | 2005 |
Psací disciplína | Statický, nebezpečný, jmenovaný |
OS | Linux, Operační Systém Mac |
Licence | Otevřený zdroj |
webová stránka | http://plexil.sourceforge.net/ |
Hlavní, důležitý implementace | |
Robotika, Vesmírné mise |
PLEXIL (Plan Přvytržení Jávýměna Language) je otevřený zdroj technologie pro automatizace, vytvořeno a v současné době ve vývoji NASA.
Přehled
PLEXIL je a programovací jazyk za zastupování plánů pro automatizace.
V roce 2006 Vandi Verma byl jedním z několika spoluautorů PLEXIL, který se nyní používá v automatizačních technologiích, jako je rover NASA K10, Mars Zvědavost rover příklepová vrtačka, Deep Space Habitat and Habitat Demonstration Unit, Edison Demonstrace sítí Smallsat, LADEE, Autonomy Operating System (AOS) a automatizace procedur pro Mezinárodní vesmírná stanice.[1][2][3]
PLEXIL Executive je provedení motor který implementuje PLEXIL a může být propojen (pomocí dodaného softwarového rámce) s externími systémy, které mají být kontrolovány a / nebo dotazovány. PLEXIL byl použit k předvedení automatizačních technologií zaměřených na budoucí vesmírné mise NASA.
Binární soubory a dokumentace jsou široce dostupné jako Licence BSD otevřený zdroj z Sourceforge.net.[4]
Uzly
Základní programovací jednotkou PLEXIL je Node. Uzel je a datová struktura skládá se ze dvou primárních složek: souboru podmínky které řídí provedení uzlu a další sadu, která určuje, čeho uzel dosáhne po provedení.
Hierarchické složení uzlů se nazývá a plán. Plán je strom rozdělený na uzly poblíž kořene (uzly na vysoké úrovni) a listové uzly, které představují primitivní akce, jako jsou přiřazení proměnných nebo odesílání příkazů do externího systému.
Typy uzlů:
V září 2008 NASA implementovala sedm typů uzlů.
- Seznam uzlů: Seznam uzlů jsou interní uzly v plánu. Tyto uzly mají podřízené uzly, které mohou být jakéhokoli typu.
- Příkazové uzly: Tyto uzly vydávají příkazy, které řídí systém.
- Uzly přiřazení: Provede místní operaci a přiřadí hodnotu proměnné.
- Uzly volání funkcí: přistupuje k externím funkcím, které provádějí výpočty, ale nemění stav systému.
- Aktualizujte uzly: Poskytuje informace rozhraní plánování a podpory rozhodování.
- Volání z knihovny uzly: Tyto uzly vyvolávají uzly v externí knihovně.
- Prázdné uzly: Uzly, které obsahují atributy a neprovádějí žádné akce.
Stavy uzlu:
Každý uzel může být pouze v jednom stavu. Oni jsou:
- Neaktivní
- Čekání
- Provádění
- Dokončování
- Iteration_Ended
- Selhání
- Hotovo
Přechody uzlů:
- SkipCondition T : Podmínka přeskočení se změní z neznámého nebo nepravdivého na pravdivý.
- StartCondition T : Počáteční podmínka se změní z neznámého nebo nepravdivého na pravdivý.
- InvariantCondition F / U : Invariantní podmínky se změní z true na false nebo neznámé.
- EndCondition T : Koncová podmínka se změní na true
- Ancestor_inv_condition F / U : Invariantní stav kteréhokoli předka se změní na falešný nebo neznámý.
- Ancestor_end_condition T : Koncová podmínka jakéhokoli předka se změní na true
- All_children_waiting_or_finished T : To platí, když jsou všechny podřízené uzly buď ve stavu uzlu čekající nebo dokončené a žádné jiné stavy.
- Command_abort_complete T : Když je zrušení akce příkazu dokončeno.
- Function_abort_complete T : Přerušení volání funkce je dokončeno.
- Parent_waiting T : (Jeden) rodič uzlu přechází do stavu čekání na uzel.
- Parent_executing T : (Jeden) rodič uzlu přechází do provádění stavu uzlu.
- RepeatCondition T / F : podmínka opakování se změní z neznámého na pravdivý nebo nepravdivý.
Reference
- ^ Estlin, Tara; Jonsson, Ari; Pasareanu, Carina; Simmons, Reid; Tso, Kam; Verma, Vandi. „Jazyk pro výměnu plánů provádění (PLEXIL)“ (PDF). Server technických zpráv NASA. Citováno 8. února 2019.
- ^ „Bibliografie publikací souvisejících s PLEXIL, organizovaná podle kategorie“. Plexil souceforge. Citováno 8. února 2019.
- ^ „Hlavní stránka: Aplikace NASA“. PLEXIL sourceforge. Citováno 8. února 2019.
- ^ http://sourceforge.net/projects/plexil