Super    Next

About XDS


Super Prev Next

Welcome to XDS

XDSis a family name for professional Modula-2/Oberon-2 programming systems available for most popular platforms, from Intel x86-based PCs (Windows 95, Windows NT, OS/2, Linux editions) to various Unix workstations (Sun, HP, DEC, MIPS) etc. XDS provides an uniform programming environment for all mentioned platforms and allows to design and implement truly portable software.

The system contains both Modula-2 and Oberon-2 compilers. These languages are often called ``safe'' and ``modular''. The principle innovation of the language Modula-2 was the module concept, information hiding and separate compilation.

Oberon-2 is an object-oriented programming (OOP) language based on Modula-2. With the introduction of object-oriented facilities, extensible project design became much easier. At the same time, Oberon-2 is quite simple and easy to learn and use, unlike other OOP languages, such as C++ or Smalltalk.

The XDS Modula-2 compiler implements ISO 10514 standard of Modula-2. The ISO standard library set is accessible from both Modula-2 and Oberon-2.

XDS is based on a platform-independent front-end for both source languages which performs all syntactic and semantic checks on the source program. The compiler builds an internal representation of the compilation unit in memory and performs platform-independent analysis and optimizations. After that the compiler emits output code. It can be either native code for the target platform or text in the ANSI C language. The ANSI C code generation is available for all platforms. A number of platforms for which a native code compiler is available is constantly extended.

Moving to a new language usually means throwing away or rewriting your existing library set which could have been the work of many years. XDS allows the programmer to mix Modula-2, Oberon-2, C and Assembler modules and libraries in a single project.

XDS includes standard ISO and PIM libraries along with a set of utility libraries and an interface to the ANSI C library set.

XDS compilers produce highly optimized 32-bit code and debug information in the Codeview and HLL4 formats.It is possible to access the Win32 API from both Modula-2 and Oberon-2 programs with the help of supplied defition modules.


Super Prev Next

Conventions used in this manual


Super Prev Next

Language descriptions

Where formal descriptions for language syntax constructions appear, an extended Backus-Naur Formalism (EBNF) is used.

These descriptions are set in the Courier font.

Text = Text [ { Text } ] | Text.

In EBNF, brackets "[" and "]" denote optionality of the enclosed expression, braces "{" and "}" denote repetition (possibly 0 times), and the vertival line "|" separates mutually exclusive variants.

Non-terminal symbols start with an upper case letter (Statement). Terminal symbols either start with a lower case letter (ident), or are written in all upper case letters (BEGIN), or are enclosed within quotation marks (e.g. ":=").


Super Prev Next

Source code fragments

When fragments of a source code are used for examples or appear within a text they are set in the Courier font.

    MODULE Example;

    IMPORT InOut;

    BEGIN
      InOut.WriteString("This is an example");
      InOut.WriteLn;
    END Example.