The research group systems analysis of the institute for computer science develops tools for the specification language SDL.
Specification and Description Language
standardized by the ITU-T (Z.100)
The SITE tools supply an open development environment and analysis components for SDL with various extensions, e.g. the combination with ASN.1 or IDL. All components are mostly individually executable programs. This permits the independent development of the components, adjustments for customers, the Intregration of third providers and flexible experiments with the SDL Sprachdefinition themselves.
Main line of the development are compiler components for the target languages C++ and Java on the basis of SDL/PR (the textuel representation of a specification). SITE is thereby a supplement of a graphic editors for SDL/GR (with appropriate SDL/PR output). The SITE compiler line is used in different projects for the generation of software for prototypes in addition, under production conditions. One should mention that, SITE also realizes a complete stand-alone X.208 ASN.1 Compiler with Basic Encoding support for C++ and Java.
SDL is a very complex language. Therefore we use meta tools for the compiler technology exclusively. The most important representatives are here Flex (lexical analysis), bison (syntactic analysis) and Kimwitu (administration of the syntax tree). Normally we use the C code generation of these meta tools, in exceptional cases also C++. Because of the good conformity of the generated code to the C standard most SITE components can be compiled problem-free on all architectures with appropriate C compilers (in particular also with Microsoft products).
In addition we use also various other freely available products (Perl, gawk) and as soon as self-developments, which support on the one hand the programmer and assure on the other hand also a correct source code manipulation. Graphic surfaces are implemented mostly with Python, with communication between SITE components we set increasingly on CORBA.
The classical compiler components are individual SITE components, which can be naturally combined in appropriate Scripts into an SDL compiler.
The tree structured by the syntax analysis in the memory plays a central role with all SITE components. The definition of this tree, called Common Representation (CR), takes place with the help of the meta tool Kimwitu. Each SITE component knows the CR definition (files data_type.kc ulp osdl.kc) and can read from or write into a file the memory structure with automatically generated functions. The code generator reads thus only the CR file of an SDL specification, whose consistency guaranteed the semantics analysis beforehand.
Sometimes the CR can be produced by a graphic SDL tool directly. For us as university it is surely unrealistic to build an appropriate graphic SDL editor. We examine however at present the possibilities, which the commercial tool Cinderella with its programming interface offers. Plugin modules are under testing for Cinderella verion 1.2a7
With the application of CORBA for individual SITE components also one thought about an universal tool interface. The name GHOST (Generic Hierachical Object Storage Tool) was found for that. So far, the standard SITE components are however not equipped with a GHOST interface.
Around the development of the compiler technology in SITE other components was implemented. In this sense SITE is also an open development environment.
The development of own components is relatively simple with the help of the well modularized sources of the other SITE components. For the general understanding of the interaction of the components there is a documented example, which implements an EBNF pretty printer (parser, rule analysis, simplification, pretty output as generation of code). In generall a SITE component has the following structure:
Considering the licence agreement the following tools with source code are available:
ftp server. For further technical information you can ask the developer team.
Other components belong to internal research projects (study or theses (diploma)) or are bound at project partners. These components are not published because of stability, insufficient documentation and project-specific licencing.