The UML Action Semantics, as described in OMG document ptc/2002-01-09, is an extension of UML providing the metamodel for a so-called action language. The purpose of this action language is to provide a foundation for dynamic semantics of UML. In principle, the action semantics can be used to write directly executable UML models (see also section 3.2.2) as is shown in Mellor and Balcer 2002 and in Kennedy Carter White Paper, CTN 80, v2.2.
There is no concrete syntax for the action semantics given in the standard; therefore, you cannot write any statement in the language in a standardized way. There are several vendor-specific languages that claim to map to the abstract syntax of the action semantics. The Action Semantics attaches all dynamics of a system to statemachines and is mainly used in the domain of embedded software.
The concepts in the Action Semantics are defined at a very low level. For instance, the concepts input and output pin are defined, which represent the fact that an action (function/operation) may have input and/or output parameters. In many respects the action semantics looks more like UML assembler than a language that is useful for a UML modeler. As such, it might be useful as a foundation, but leaves a definite need for a language at a higher level of abstraction.