NASA/JPL Launch DSLs in Scala

Created by bagwell on 2010-06-20.
Updated: 2010-06-20, 07:27

Klaus Havelund at NASA's Jet Propulsion Laboratory (JPL) has been using Scala to explore the use of DSLs in shuttle and other space mission launch control applications. Klaus, a Senior Research Scientist at JPL's Laboratory for Reliable Software (LaRS), has compared the benefits of creating DSLs with Python and Scala with the aim of simplifying the writing of reliable launch control programs.

Using the problem of hydrogen fuel tank filling as a basis, his team has created a DSL to allow the simple description of the actions and instrument constraints for this process. A DSL will enable the launch engineers to write statically checked launch procedures that are easy to read and maintain.

Klaus's main interest is the development of runtime monitoring techniques, including the design of powerful monitoring logics, and algorithms for detecting concurrency errors such as deadlocks and various forms of data races. His most recent work includes the LogScope system/temporal logic for analyzing log files; based on the more general Ruler monitoring logic. Previous work includes the RMOR monitoring tool for monitoring C programs against state machines using aspect oriented techniques; and the very powerful Eagle temporal monitoring logic, implemented in the Eagle Flier trace checker. Eagle supports user definable logics and combinators, using recursive fixpoint rules and parameterization with formulas as well as with data. Real-time logics can be defined in few lines of Eagle.