Introduction to Scrall

Scrall is an action language specifically designed to leverage the unique semantics of xUML. Whereas most UML’s are centered around object oriented programming semantics, xUML is built on the relational model of data (class model), distributed networking theory (state models) and data/control flow semantics (action sequencing). It shouldn’t be too surprising that an action language such as Alf, intended as a standard for the greater UML community would, would be both burdensome and a conceptual mismatch for our purposes.

The xUML semantics do not presume an object oriented programming language on the target platform. Nor are there any built-in impediments to such an implementation. There is no bias toward any particular degree of concurrency to be provided by the target platform. An action language for xUML should be constructed to fit and leverage xUML’s mathematical foundations.


The key inspirations for Scrall are the Small action language proposal, C.J. Date’s writings on relational theory and Andrew Mangogna’s Rosea project. Additionally, years of frustration with the inherent limitations of BridgePoint’s (xtUML) Object Action Language (OAL) have been a driving force. That action language as well as its British cousin Action Specification Language (ASL) were a great first step, but neither evolved much beyond their original formulations.

The name

It stands for Starr’s Concise Relational Action Language with a gratuitous ‘l’ to guide the pronunciation (sounds like “hall” not “Hal”). This pronunciation derives from the original (and not abandoned) desire to design a graphical language easily sketched by hand (scrawl).

Status of Scrall as a Language

Scrall is still in the early days of development. Much of the syntax described here is subject to change as we find ways to tighten up the language.

There is no formal grammar for Scrall since we are still in the conceptual phase. There’s not much point in defining a grammar for a language that is subject to significant change.

All that said, we encourage you to begin trying to use Scrall as a pseudocode for writing xUML activities. You can use Scrall in the comments of your action language to clarify what you are trying to accomplish. We took this approach in our book Models to Code. You should be able to accomplish in just a few lines what may require numerous awkward lines in your tool specific action language. Hopefully, thinking in the set, relational and concurrent terms of Scrall will make it easier solve problems and to write better action language.

But don’t worry, we don’t plan to be in this conceptual phase much longer. We plan to cobble a formal grammar together as soon as possible.