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.