W3C文档中给出了一个SCXML解释器算法的原型,可以帮助我们对SCXML有更深入的理解。针对这些算法有一些初步的定义。
- state : 指文档中 <state>, <parallel>或 <final>元素。
- pseudo state: 指<initial>或者<history>元素。
- transition target:指state或者history。
- atomic state:指没有子状态的<state>或者<final>。
- compound state:有至少一个子状态的<state>。
- configuration:状态机当前的状态的最大集,包括(parallel和final)。
- source state :transition的source state就是包含这个transition的state。
- target state:transition的target state就是这个transition转入的state。注意,一个transition可以有0或多个target state。
- targetless transition:没有target state的transition。
- eventless transition:没有定义事件的transition。
- external event:在外部事件队列中的事件,这些事件来自外部或者由<send>产生。
- internal event:内部事件队列中的事件,这些事件由内部产生或者是<raise>或<send>产生的。
- microstep:microstep涉及单个transition(或者在parallel中的一组transition)的处理,microstep可能改变当前的configuration,更新数据模型,产生新的事件。这可能激活相关的transition,这些transition会在后续的microstep中进行处理。
- macrostep:macrostep包括一系列microstep,macrostep完成后状态机会处于稳定状态,可以处理外部事件。一个外部事件会导致一个macrostep。然而,如果外部事件不激活任何transition,就没有microstep,macrostep就是空的。
网友评论