Chapter 9

Here’s a non-prioritized overview of language and runtime features planned for future ECharts releases.

9.1 Exception Handling

The current version of ECharts requires programmers to handle runtime exceptions using the exception handling facility provided by the underlying host language. The next version will support exception handling in the ECharts language itself.

9.2 Machine Inheritance

Conspicuously absent from the current version of ECharts is support for machine inheritance. Our approach to inheritance will permit submachines to add or override states and transitions in machine superclasses.

9.3 Machine Variables

The adventurous ECharts programmer may have noticed that the current version of ECharts supports recursive machine invocation, that is to say, the ability for a machine to directly or indirectly invoke itself. With appropriately specified constructors and transition guards, one can even avoid infinite recursion. However this is more of a party trick than a fundamentally useful feature. What ECharts requires to make it a full-fledged (Turing complete) language is the ability to perform operations directly on a machine at runtime. Our approach will permit machines to be assigned to machine variables and machine variables to be assigned to machine states. Our goal in providing this support is not to claim Turing completeness; rather, it is to simplify programming tasks we have encountered.