E. Najm, U. Nestmann, and P. Stevens (Eds.): FMOODS 2003, LNCS 2884, pp. 47–63, 2003.
© IFIP International Federation for Information Processing 2003
Engineering the SDL Formal Language Definition
Andreas Prinz
1
and Martin v. Löwis
2
1
DResearch Digital Media Systems GmbH, Otto-Schmirgal-Str. 3,
D-10319 Berlin
prinz@dresearch.de
2
Hasso-Plattner-Institut für Softwaresystemtechnik GmbH, Postfach 900460,
D-14440 Potsdam
martin.vonloewis@hpi.uni-potsdam.de
Abstract. With the latest revision of the ITU-T Specification and Description
Language (SDL-2000), a formal language definition based on the concept of
Abstract State Machines (ASMs) became integral part of the standard. Together
with the formal definition, we have developed software tools that allow execut-
ing the formal language definition on a computer. In doing so, we found that
tools greatly help to eliminate numerous errors from the formal definition,
which likely would have not been found without tools.
1 Introduction
Defining the formal semantics of programming languages is an area of ongoing re-
search. While formalizing the syntax of the language by means of grammars is well-
understood, various techniques have been studied to define other properties of the
language. We think that a language is sufficiently formalized if the following aspects
are defined [1]:
1. The lexis: How to transform the input sequence of bytes into a sequence of tokens?
2. The syntax: Given a sequence of tokens, is that a sentence of the language?
3. The well-formedness rules (static semantics): Given a sentence of the language,
does that meet certain additional constraints?
4. The run-time (or dynamic) semantics: What does the program do when executed?
In this paper, we discuss these aspects of the language definition for the ITU-T Speci-
fication and Description Language [2]. We first introduce the language SDL, and
continue with an overview of the formal semantics, covering each of the four aspects.
In our experience, defining a formal semantics for a language is not useful without
sufficient tool support. Tools should be used to verify that the formal definition is
consistent in itself, and to validate it agrees with the intended semantics of the lan-
guage. Unfortunately, no single tool can be used to automatically process a formal
language definition from the version that is published as an international standard.
Consequently, we have developed our own tool chain (building on existing tools
where possible) to process the formal semantics definition of SDL. The tools and the
results we achieved by using the tools are presented in subsequent sections. We hope
to expose this approach to a wider audience, and to encourage researchers to copy
either the general approach or the choice of specific tools for their language of inter-
est.