Towards a Systems Programming Language Designed for Hierarchical State Machines

被引:2
|
作者
McClelland, Brian [1 ]
Tellier, Daniel [1 ]
Millman, Meyer [1 ]
Go, Kate Beatrix [1 ]
Balayan, Alice [1 ]
Munje, Michael J. [1 ]
Dewey, Kyle [1 ]
Nhut Ho [1 ]
Havelund, Klaus [2 ]
Ingham, Michel [2 ]
机构
[1] Calif State Univ Northridge, Northridge, CA 91330 USA
[2] CALTECH, Jet Prop Lab, Pasadena, CA 91109 USA
基金
美国国家航空航天局;
关键词
D O I
10.1109/SMC-IT51442.2021.00010
中图分类号
V [航空、航天];
学科分类号
08 ; 0825 ;
摘要
In flight applications, Hierarchical State Machines (HSMs) are often used for writing simulation and control software, including that of the Curiosity rover. At the Jet Propulsion Laboratory (JPL), multiple domain-specific languages have been developed specifically for writing HSM-based software, and these have been used in practice. However, we observe that the existing languages developed have significant issues with one or more of usability, performance, and safety, making them problematic for HSM-based development. To address these concerns, we are taking lessons learned from these languages and developing a new programming language named Proteus. Proteus builds HSM support directly into the language, and permits complex HSMs to be defined which communicate with each other. Proteus is designed with a look and feel similar to C/C++, making it usable and approachable for JPL software engineers. Proteus itself compiles to C++, allowing it to fit easily into existing development toolchains, making it amenable to embedded real-time systems. To ensure that Proteus will be of use to its target audience, it is being iteratively developed through a series of prototypes which are regularly evaluated by key JPL stakeholders, ensuring Proteus always stays on track. While Proteus is still very young in its development, we demonstrate its basic viability on an example utilizing multiple independent HSMs communicating with each other, and a relevant execution trace. In the future, we plan to apply Proteus to larger HSMs taken from real flight applications, and many additional relevant features are planned.
引用
收藏
页码:23 / 30
页数:8
相关论文
共 50 条
  • [31] Universal parameter language for the programming of numerical controlled machines
    M. A. F Gonçalves
    F. J. Lorini
    C. Benetti
    M. Eckhardt
    C. J. Scheuer
    The International Journal of Advanced Manufacturing Technology, 2020, 110 : 2713 - 2725
  • [32] Universal parameter language for the programming of numerical controlled machines
    Goncalves, M. A. F.
    Lorini, F. J.
    Benetti, C.
    Eckhardt, M.
    Scheuer, C. J.
    INTERNATIONAL JOURNAL OF ADVANCED MANUFACTURING TECHNOLOGY, 2020, 110 (9-10): : 2713 - 2725
  • [33] Hierarchical Finite State Machines for Efficient Optimal Planning in Large-scale Systems
    Stefansson, Elis
    Johansson, Karl H.
    2023 EUROPEAN CONTROL CONFERENCE, ECC, 2023,
  • [34] Modeling and Monitoring of Hierarchical State Machines in Scala
    Havelund, Klaus
    Joshi, Rajeev
    SOFTWARE ENGINEERING FOR RESILIENT SYSTEMS, SERENE 2017, 2017, 10479 : 21 - 36
  • [35] Synthesis of Parallel Hierarchical Finite State Machines
    Sklyarov, Valery
    Skliarova, Iouliia
    2013 21ST IRANIAN CONFERENCE ON ELECTRICAL ENGINEERING (ICEE), 2013,
  • [36] Hierarchical State Machines for Native Mobile Apps
    Prajapati, Dilip
    2012 ANNUAL IEEE INDIA CONFERENCE (INDICON), 2012, : 640 - 642
  • [37] Hierarchical concurrent finite state machines in Ptolemy
    Lee, B
    Lee, EA
    1998 INTERNATIONAL CONFERENCE ON APPLICATION OF CONCURRENCY TO SYSTEM DESIGN, PROCEEDINGS, 1998, : 34 - 40
  • [38] Synthesis of reconfigurable hierarchical finite state machines
    Sklyarov, Valery
    Skliarova, Iouliia
    AUTONOMOUS ROBOTS AND AGENTS, 2007, 76 : 259 - 265
  • [39] Hierarchical State Machines as Modular Horn Clauses
    Garoche, Pierre-Loic
    Kahsai, Temesghen
    Thirioux, Xavier
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2016, (219): : 15 - 28
  • [40] Refinement Patterns for Hierarchical UML State Machines
    Schoenborn, Jens
    Kyas, Marcel
    FUNDAMENTALS OF SOFTWARE ENGINEERING, 2010, 5961 : 371 - +