PLEXIL
表示
パラダイム | Multi-paradigm |
---|---|
登場時期 | 2005 |
設計者 | NASA |
型付け | Static, unsafe, nominative |
主な処理系 | Robotics, Space missions |
プラットフォーム | Linux, Mac OS |
ライセンス | Open source |
ウェブサイト | http://plexil.sourceforge.net/ |
PLEXIL(Plan Execution Interchange Language)は NASA が現在開発中の 自動化のための オープンソース 技術である。
概要
[編集]PLEXILは 自動化のための計画を記述する プログラミング言語 である。
PLEXIL Executiveは、PLEXILを実装し、(提供されたソフトウェアフレームワークを使用して)制御および/または照会する外部システムとのインタフェースが可能な実行エンジンである。PLEXILは、NASAの将来のミッションのための自動化技術を実証するために使用されている。 PLEXILの応用例には、ハードウェアのプロトタイプ(惑星ローバとドリル、 生息地の実証ユニット、 ISSのための手順自動化)の制御を含んでいる。
実行ファイルおよび文書は Sourceforge.net からオープンソースとして幅広く利用可能である。[1]
ノード
[編集]PLEXILの基本的なプログラミング単位はノードである。ノードとは、実行条件と実行目標を2つの主要コンポーネントで構成するデータ構造です。
階層的に構成したノードと呼ばれる プランです。 プランはツリーに分けられてノードのルート高レベルのノード)は、葉ノードを表すプリミティブなどを行なってい変数の課題は、送信コマンドは外部システムです。ノードを階層的に構成したものを計画と呼ぶ。計画は、ルートに近いノードと、変数割り当てやコマンドの外部システムへの送信などを表すリーフノードに分かれたツリー構造です。
2008年9月時点に、NASAは7種類のノードを実装した。
- リストノード:計画の内部ノード。 これらのノードはあらゆるタイプの子ノードを持つ。
- コマンドノード:自動化対象システムにコマンドを発行するノード。
- 代入ノード:ローカルな演算を行い、値を変数に代入するノード。
- 関数呼出ノード:計算を実行しても状態を変更しない外部関数にアクセスするノード。
- 更新ノード:計画立案および意思決定支援のインターフェースに情報を提供するノード。
- ライブラリ呼出ノード:外部ライブラリのノードを呼び出すノード。
- 空ノード:属性を含み、何も実行しないノード。
ノード状態:
各ノードはただ1つの状態を取りうる。
- 不活性
- 待機
- 実行
- 終了
- Iteration_Ended
- 失敗
- 完成
ノード遷移:
- SkipCondition T :スキップ条件が未知またはfalseからtrueに変化する遷移。
- StartCondition T 開始条件が未知またはfalseからtrueに変化する遷移。
- InvariantCondition F/U :不変条件がtrueから未知またはfalseに変化する遷移。
- EndCondition T :終了条件がtrueに変化する遷移
- Ancestor_inv_condition F/U:上位の不変条件がtrueから未知またはfalseに変化する遷移。
- Ancestor_end_condition T 終了条件がtureに変化する遷移。
- All_children_waiting_or_finished T :すべての子ノードが待機状態または終了状態にあり、他の状態にない場合にtrueに変化する状態遷移。
- Command_abort_complete T :コマンドアクションの中断が完了する状態遷移。
- Function_abort_complete T :関数呼出の中断が完了する状態遷移。
- Parent_waiting T :(単一の)親ノードが待機状態に遷移する状態遷移。
- Parent_executing T :(単一の)親ノードが実行中状態に遷移する状態遷移。
- RepeatCondition T/F 繰り返し条件が未知からtrueまたはfalseに変更する状態遷移。