플렉실

PLEXIL
플렉실
패러다임다중 파라다임
설계자나사
첫 등장2005
타이핑 규율정적, 안전하지 않음, 명목상
OSLinux, Mac OS
면허증오픈 소스
웹사이트http://plexil.sourceforge.net/
주요 구현
로보틱스, 우주 임무

PLEXIL(Plan Execution Interchange Language)은 NASA가 만들고 현재 개발 중인 자동화를 위한 오픈 소스 기술이다.

개요

PLEXIL은 자동화 계획을 나타내는 프로그래밍 언어다.

In 2006 Vandi Verma was one of several co-writers of PLEXIL, which is now used in automation technologies such as the NASA K10 rover, Mars Curiosity rover's percussion drill, Deep Space Habitat and Habitat Demonstration Unit, Edison Demonstration of Smallsat Networks, LADEE, Autonomy Operating System (AOS) and procedure automation for the Internati온월 우주 [1][2][3]정거장

PLEXIL 집행부는 PLEXIL을 구현하는 실행 엔진이며, 제어 및/또는 쿼리할 외부 시스템과 (제공된 소프트웨어 프레임워크를 사용하여) 상호 연결될 수 있다.PLEXIL은 미래의 NASA 우주 임무를 목표로 하는 자동화 기술을 시연하기 위해 사용되어 왔다.

바이너리와 문서는 SourceForge.net에서 BSD 허가 오픈 소스로 널리 이용 가능하다.[4]

노드

PLEX의 기본 프로그래밍 단위IL은 노드.노드는 노드의 실행을 주도하는 조건 집합과 실행 후 노드가 달성하는 것을 지정하는 다른 집합의 두 가지 주요 구성요소로 구성된 데이터 구조다.

노드의 계층적 구성을 계획이라고 한다.계획(plan)은 루트(고급 노드)에 가까운 노드와 leaf 노드로 나누어진 트리로, 가변 할당이나 외부 시스템에 명령을 보내는 등의 원시적인 액션을 나타낸다.

노드 유형:

2008년 9월 현재 NASA는 7가지 종류의 노드를 구현했다.

  • 노드 나열:목록 노드는 계획의 내부 노드.이러한 노드에는 어떤 유형이든 될 수 있는 하위 노드가 있다.
  • 명령 노드:이 노드는 시스템을 구동하는 명령을 실행한다.
  • 할당 노드:로컬 연산을 수행하고 변수에 값을 할당한다.
  • 함수 호출 노드:연산을 수행하는 외부 기능에 액세스하지만 시스템의 상태를 변경하지는 않는다.
  • 노드 업데이트:계획 및 의사결정 지원 인터페이스에 정보 제공
  • 라이브러리 호출 노드:이 노드는 외부 라이브러리에서 노드를 호출한다.
  • 빈 노드:속성을 포함하고 작업을 수행하지 않는 노드.

노드 상태:

각 노드는 하나의 상태만 될 수 있다.다음 구성 요소:

  • 비활성
  • 기다림
  • 실행 중
  • 마무리
  • 반복_종료
  • 실패
  • 완료됨

노드 전환:

  • SkipCondition T : SkipCondition이 알 수 없거나 False에서 True로 바뀐다.
  • StartCondition T : 시작 조건이 알 수 없거나 거짓인 상태에서 True로 바뀐다.
  • InvariantCondition F/U : Invariant 조건이 true에서 false 또는 notal로 바뀐다.
  • EndCondition T : EndCondition이 True로 변경됨
  • Phosen_inv_condition F/U : 어떤 조상의 불변조건도 거짓이나 알 수 없는 상태로 바뀐다.
  • Phosen_end_condition T : 모든 상위 항목의 종료 조건이 true로 변경됨
  • All_children_waiting_or_finished T : 모든 자식 노드가 노드 상태에 대기 중이거나 완료되어 있고 다른 상태가 없을 때 그렇다.
  • Command_abort_complete T : 명령 동작의 중단이 완료된 경우.
  • Function_abort_complete T : 함수 호출의 중단이 완료된다.
  • Parent_waiting T : 노드의 (단일) 상위 항목이 대기 중인 노드 상태로 전환됨.
  • 상위_실행 T : 실행 중인 노드 상태로 전환되는 노드의 (단일) 상위.
  • RepeatCondition T/F : 반복 조건이 알 수 없는 상태에서 참 또는 거짓으로 바뀐다.

참조

  1. ^ Estlin, Tara; Jonsson, Ari; Pasareanu, Carina; Simmons, Reid; Tso, Kam; Verma, Vandi (April 2006). "Plan Execution Interchange Language (PLEXIL)" (PDF). NASA Technical Reports Server. Retrieved 8 February 2019.
  2. ^ "Bibliography of PLEXIL-related publications, organized by category". Plexil souceforge. Retrieved 8 February 2019.
  3. ^ "Main page: NASA applications". PLEXIL sourceforge. Retrieved 8 February 2019.
  4. ^ "PLEXIL (Plan execution software)".

외부 링크

참고 항목