PLEXIL

PLEXIL

Infobox programming language
name = PLEXIL

paradigm = Multi-paradigm
year = 2008
designer = NASA
developer =
latest_release_version =
latest_release_date =
latest_test_version =
latest_test_date =
typing = Static, unsafe, nominative
implementations = Robotics,Space missions
dialects =
influenced_by =
influenced =
operating_system =Linux,Mac OS
license =Open source
website =http://ti.arc.nasa.gov/tech/project/details.php?pid=240&gid=8&ta=2

Plan Execution Interchange Language. Is an open source programming language created and currently in development by the National Aeronautics and Space Administration NASA. PLEXIL is primarily intended for use in applications with unmanned robotic missions. [http://ti.arc.nasa.gov/tech/project/index.php?pid=240&gid=8&ta=2]

Overview

PLEXIL is according to NASA a language for representing plans for automation. PLEXIL is compact, portable and deterministic. PLEXIL is accompanied by an execution engine named "Universal Executive" which implements PLEXIL and creates interfaces to outer controlled systems.PLEXIL has been used in prototype rovers as to demonstrate automation in space missions. The binaries and documentation is widely available as open source from Sourceforge.net . [http://plexil.wiki.sourceforge.net/]

Nodes

The fundamental block of PLEXIL is the Node. A node is a data structure formed of two primary components: a set of conditions that drive the execution of the node and another set which specifies what the node accomplishes after execution.

A hierarchical composition of nodes is called a plan. A plan is a tree divided in nodes close to the root (high level nodes) and leaf nodes that represent primitive actions such as variable assignments or the sending of commands to the external system.

Node Types:

As of September 2008 NASA has implemented seven types of nodes.

*"List nodes": List nodes are the internal nodes in a plan. These nodes have child nodes that can be of any type.
*"Command nodes": These nodes issue commands that drive the system.
*"Assignment nodes": Performs a local operation and assigns a value to a variable.
*"Function call nodes":accesses external functions that perform computations, but do not alter the stateof the system.
*"Update nodes": Provides information to the planning and decision support interface.
*"Library call" nodes: This nodes invoke nodes in an external library.
*"Empty nodes": Nodes that contain attributes and do not perform any actions.

Node states:

Each node can be in only one state. They are:
*Inactive
* Waiting
* Executing
* Finishinghttp:Iteration_Ended
* Failing
* Finished

Nodes transitions:
*"SkipCondition T" : The skip condition changes from unknown or false to true.
*"StartCondition T" : The start condition changes from unknown or false to true.
*"InvariantCondition F/U" : Invariant condition changes from true to false or unknown.
*"EndCondition T" : End condition changes to true
*"Ancestor_inv_condition F/U" : The invariant condition of any ancestor changes to false orunknown.

*"Ancestor_end_condition T" : The end condition of any ancestor changes to true
*"All_children_waiting_or_finished T" : This is true when all child nodes are in either innode state waiting or finished and no other states.

*"Command_abort_complete T" : When the abort for a command action is completed.
*"Function_abort_complete T" : The abort of a function call is completed.
*"Parent_waiting T" : The (single) parent of the node transitions to node state waiting.
*"Parent_executing T" : The (single) parent of the node transitions to node state executing.
*"RepeatCondition T/F" : the repeat condition changes from unknown to either true or false.

External links

* [http://ti.arc.nasa.gov/tech/project/index.php?pid=240&gid=8&ta=2/ PLEXIL at NASA]
* [http://plexil.wiki.sourceforge.net/space/showimage/plexil-manual.pdf/ PLEXIL PDF Manual]

ee also

*Programming Language
*Cybernetics
*Space exploration


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • List of programming languages — Programming language lists Alphabetical Categorical Chronological Generational The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in… …   Wikipedia

  • Liste des langages de programmation — Le but de cette Liste des langages de programmation est d inclure tous les langages de programmation existants, qu ils soient actuellement utilisés ou historiques, par ordre alphabétique. Ne sont pas listés ici les langages informatiques de… …   Wikipédia en Français

  • Список языков программирования — Списки языков программирования Алфавитный По категориям Хронологический Генеалогический Цель этого алфавитного списка языков программирования состоит в том, чтобы дать полный перечень всех существующих языков программирования, как используемых в… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”