next up previous
Next: 1.2.3 Semantic entities Up: 1.2 Basics of action Previous: 1.2.1 Abstract syntax

1.2.2 Semantic functions

Semantic functions, as the most important module of a language specification, reveals one of action semantics' innovative characteristics: informal English appearance. However, semantics is rigorously defined under this appearance. Part of this merit attributes to the use of action combinators. Combinators are primitively defined in action semantics, and have their primitive semantics. For instance, combinator ``and then'' means the sequential execution of two statements; so, if we define $A_1$ and $A_2$ to be two statements, ``$A_1$ and then $A_2$'' gives the meaning of executing $A_1$ before $A_2$. The result of the execution is independent of the architecture.


Table 2: An equation from the semantic function module
\begin{ttfamily}\centerline{ \begin{tabular}{l} execute [[''if''
E ''then'' S1 '...
...ot the given truth-value and then execute S2 ) ).
\end{tabular} } \end{ttfamily}


The format of semantic function module is very similar to the abstract syntax module. Table 2 shows an equation extracted from this module.

Even in this simple equation, several combinators are found including execute, evaluate, then, check [not] the given truth-value, and then and or. Not necessary to explain their semantics, every one knows it because they are English verbs or phrases. The design of these combinators, though it seems to be simple and casual, is nontrivial, because they are universal, not limited to a certain kind of statements or data. They are in a higher level of abstraction than the language specification, and described in another (internal) module. This contributes to the modularity of action semantics. To cite a conclusion in [Mos96], ``since the above features ensure that ASDs (Action Semantics Descriptions -- by the author) have an inherent modularity, the use of explicit modules is almost redundant.''


next up previous
Next: 1.2.3 Semantic entities Up: 1.2 Basics of action Previous: 1.2.1 Abstract syntax
Thomas Feng 2003-04-18