VML (Virtual Machine Language) is an advanced computing environment that allows spacecraft to operate using mechanisms ranging from simple, timeoriented sequencing to advanced, multicomponent reactive systems.
VML has developed in four evolutionary stages. VML 0 is a core execution capability providing multi-threaded command execution, integer data types, and rudimentary branching. VML 1 added named parameterized procedures, extensive polymorphism, data typing, branching, looping issuance of commands using run-time parameters, and named global variables. VML 2 added for loops, data verification, telemetry reaction, and an open flight adaptation architecture. VML 2.1 contains major advances in control flow capabilities for executable state machines.
On the resource requirements front, VML 2.1 features a reduced memory footprint in order to fit more capability into modestly sized flight processors, and endian-neutral data access for compatibility with Intel little-endian processors. Sequence packaging has been improved with object-oriented programming constructs and the use of implicit (rather than explicit) time tags on statements. Sequence event detection has been significantly enhanced with multi-variable waiting, which allows a sequence to detect and react to conditions defined by complex expressions with multiple global variables. This multi-variable waiting serves as the basis for implementing parallel rule checking, which in turn, makes possible executable state machines.
The new state machine feature in VML 2.1 allows the creation of sophisticated autonomous reactive systems without the need to develop expensive flight software. Users specify named states and transitions, along with the truth conditions required, before taking transitions. Transitions with the same signal name allow separate state machines to coordinate actions: the conditions distributed across all state machines necessary to arm a particular signal are evaluated, and once found true, that signal is raised. The selected signal then causes all identically named transitions in all present state machines to be taken simultaneously.
VML 2.1 has relevance to all potential space missions, both manned and unmanned. It was under consideration for use on Orion.
This work was done by Joseph E. Riedel of Caltech and Christopher A. Grasso of Blue Sun Enterprises for NASA’s Jet Propulsion Laboratory.
This software is available for commercial licensing. Please contact Daniel Broderick of the California Institute of Technology at
This Brief includes a Technical Support Package (TSP).

Virtual Machine Language 2.1
(reference NPO-47696) is currently available for download from the TSP library.
Don't have an account?
Overview
The document outlines the Virtual Machine Language (VML) 2.1, an advanced computing environment developed by NASA's Jet Propulsion Laboratory (JPL) for spacecraft operations. VML has evolved through several versions, with VML 2.1 being a significant enhancement that supports autonomous guidance, navigation, and control of spacecraft. It has been utilized in various missions, including Mars Odyssey, Spitzer, and Juno, demonstrating its effectiveness in deep-space exploration.
VML 2.1 builds upon its predecessors by introducing major advancements in control flow capabilities, allowing for more sophisticated programming constructs. Key features include a reduced memory footprint, making it suitable for modestly sized flight processors, and improved sequence packaging through object-oriented programming. The language supports implicit time tags and multi-variable waiting, enabling complex event detection and reaction based on multiple global variables.
One of the standout features of VML 2.1 is its state machine capability, which allows users to create autonomous reactive systems without the need for extensive flight software development. Users can define named states and transitions, along with the conditions required for transitions to occur. This feature has been successfully tested in workstation environments, demonstrating its ability to respond to various nominal and off-nominal conditions, thereby enhancing mission safety and operational efficiency.
The document emphasizes the benefits of VML in reducing development effort and increasing the autonomous capabilities of spacecraft. By allowing for reusable functions and coding responses to conditions directly into the system, VML minimizes the need for extensive software changes during missions, ultimately lowering mission costs.
Overall, VML 2.1 represents a significant advancement in spacecraft programming, providing a flexible and powerful tool for mission planners and operators. Its proven track record across multiple missions highlights its reliability and effectiveness in managing complex space operations, making it a vital component of modern aerospace technology. The ongoing development of VML 3 promises to further enhance these capabilities, ensuring that future missions can leverage the latest advancements in autonomous systems and programming efficiency.

