Super    Next

About XDS

Super Prev Next

Welcome to XDS

XDS is a family name for professional Modula-2/Oberon-2 programming systems for Intel x86-based PCs (Windows and Linux editions are available). XDS provides an uniform programming environment for the mentioned platforms and allows design and implementation of 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. ANSI C code generation allows you to cross compile Modula-2/Oberon-2 for almost any platform.

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;

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