ПЛЕКСИЛ
Парадигма | Мультипарадигмальность |
---|---|
Разработано | НАСА |
Впервые появился | 2005 |
Дисциплина набора текста | Статический , небезопасный , именительный падеж |
ТЫ | Линукс , МакОС |
Лицензия | Открытый исходный код |
Веб-сайт | http://plexil.sourceforge.net/ |
Основные реализации | |
Робототехника , Космические миссии |
PLEXIL ( язык ) планами выполнения обмена созданная и в настоящее время с , — это открытым исходным кодом технология автоматизации разрабатываемая НАСА .
Обзор
[ редактировать ]PLEXIL — это язык программирования для представления планов автоматизации .
PLEXIL используется в таких технологиях автоматизации, как марсоход NASA K10, Curiosity марсохода ударная установка , Deep Space Habitat и Habitat Demonstration Unit , Edison Demonstration of Smallsat Networks , LADEE , Autonomy Operating System (AOS) и автоматизация процедур для Международной космической станции . [1] [2] [3]
PLEXIL Executive — это выполнения механизм , который реализует PLEXIL и может взаимодействовать (с использованием предоставленной программной среды) с внешними системами, которые необходимо контролировать и/или запрашивать. PLEXIL использовался для демонстрации технологий автоматизации, предназначенных для будущих космических миссий НАСА.
Двоичные файлы и документация широко доступны в виде открытого исходного кода под лицензией BSD на сайте SourceForge.net . [4]
Узлы
[ редактировать ]Основной программной единицей PLEXIL является Node. Узел — это структура данных , состоящая из двух основных компонентов: набора условий , которые управляют выполнением узла, и другого набора, который определяет, что узел выполняет после выполнения.
Иерархическая композиция узлов называется планом . План — это дерево, разделенное на узлы, близкие к корню (узлы высокого уровня) и листовые узлы, которые представляют примитивные действия, такие как назначение переменных или отправка команд во внешнюю систему.
Типы узлов:
По состоянию на сентябрь 2008 года НАСА реализовало семь типов узлов.
- Узлы списка : Узлы списка — это внутренние узлы плана. Эти узлы имеют дочерние узлы, которые могут быть любого типа.
- Командные узлы : эти узлы выдают команды, которые управляют системой.
- Узлы назначения : выполняют локальную операцию и присваивают значение переменной.
- Узлы вызова функций : получают доступ к внешним функциям, которые выполняют вычисления, но не изменяют состояние системы.
- Узлы обновления : предоставляют информацию для интерфейса планирования и поддержки принятия решений.
- Узлы вызова библиотеки . Эти узлы вызывают узлы внешней библиотеки.
- Пустые узлы : узлы, содержащие атрибуты и не выполняющие никаких действий.
Узел сообщает:
Каждый узел может находиться только в одном состоянии. Они есть:
- Неактивный
- Ожидающий
- Выполнение
- Отделка
- Итерация_Завершена
- неудачно
- Законченный
Переходы узлов:
- SkipCondition T : условие пропуска меняется с неизвестного или ложного на истинное.
- StartCondition T : условие запуска изменяется с неизвестного или ложного на истинное.
- InvariantCondition F/U : Инвариантное условие меняется с истинного на ложное или неизвестное.
- EndCondition T : Конечное условие меняется на истинное.
- Ancestor_inv_condition F/U : Инвариантное состояние любого предка меняется на ложное или неизвестное.
- Ancestor_end_condition T : конечное условие любого предка изменяется на true.
- All_children_waiting_or_finished T : это верно, когда все дочерние узлы либо находятся в состоянии ожидания узла, либо завершены.
- Command_abort_complete T : Когда завершено прерывание действия команды.
- Function_abort_complete T : прекращение вызова функции завершено.
- Parent_waiting T : (одиночный) родительский элемент узла переходит в состояние ожидания узла.
- Parent_executing T : (единственный) родительский элемент узла переходит в состояние выполнения узла.
- RepeatCondition T/F : условие повторения меняется с неизвестного на истинное или ложное.
Ссылки
[ редактировать ]- ^ Эстлин, Тара; Йонссон, Ари; Пасареану, Корина ; Симмонс, Рид; Цо, Кам; Верма, Ванди (апрель 2006 г.). «Язык обмена планом выполнения (PLEXIL)» (PDF) . Сервер технических отчетов НАСА . Проверено 8 февраля 2019 г.
- ^ «Библиография публикаций, связанных с PLEXIL, сгруппированная по категориям» . Плексил Соусфорж . Проверено 8 февраля 2019 г.
- ^ «Главная страница: Приложения НАСА» . ПЛЕКСИЛ исходный код . Проверено 8 февраля 2019 г.
- ^ «PLEXIL (Программное обеспечение для выполнения планов)» .