Two languages…
Products of the XDS family facilitate software development in the Modula‑2 and Oberon‑2 languages. The unique feature of XDS is seamless integration between the two, which enables you to mix Modula‑2 and Oberon‑2 modules in one project freely.
…two toolchains…
Native XDS-x86 Optimizing compilers
Native XDS-x86 is an optimizing ISO Modula-2 and Oberon-2
compiler for 32‑bit Intel x86 systems running Windows or Linux.
The Windows version comes with additional suite of tools including an IDE,
debugger, profiler, etc., whereas the Linux version is a command-line
compiler relying on the standard Linux tools such as gdb
.
XDS-C "Via C" cross compilers
XDS-C is a Modula-2/Oberon-2 "via C" compiler: its output is ANSI C, K&R C, or C++ source code, which may then be compiled by a third-party C/C++ compiler for any target platform. This technique allows you to cross program in Modula-2 and/or Oberon-2 for virtually any target environment. XDS-C itself runs on Windows and Linux.
TopSpeed Compatibility Pack
TopSpeed Compatibility Pack (TSCP) is an add-on for both XDS toolchains that makes them more compatible with the TopSpeed Modula-2 compiler, thus simplifying porting of legacy TopSpeed Modula-2 sources.
…and a new IDE!
The new, Eclipse-based Modula-2 IDE for XDS compilers provides features such as code completion, formatting and navigation (show usages / jump to definition).
If you are wondering how on Earth a new Modula-2 IDE could come into existence in 2016, click here to find out.
The project is currently in maintenance mode, but sponsors are welcome. Contact us if you want to finance the development of new features or, perhaps, the Linux port.
Free
As In Beer
XDS products used to be commercial, but since May 2005 they are available under a freeware license.
As In Speech
The new Eclipse-based XDS IDE is open source under the Eclipse Public License.
Features And Contents
Feature/Component | Product/Platform | |||
---|---|---|---|---|
XDS-x86 | XDS-C | |||
![]() |
![]() |
![]() |
![]() |
|
Features | ||||
ISO 10514 compliance XDS Modula-2 complies with the ISO 10514-1 language specification. | ✔ | ✔ | ✔ | ✔ |
TopSpeed Modula-2 compatibility mode In this mode, XDS compiler behave similarly to TopSpeed Modula-2
in a handful of aspects, which is useful when porting legacy code. | ✔ | ✔ | ✔ | ✔ |
Multilanguage programming support The unique feature of XDS
compilers is seamless integration between Modula-2 and Oberon-2 code.
Modula-2 objects (types, variables and procedures) can be freely used
from Oberon-2 code, and some Oberon-2 features are available in
Modula-2 as language extensions.
There are also numerous system features that simplify interfacing with
other programming languages. In your Modula-2 or Oberon-2 code,
you may freely call functions residing in C DLLs or shared libraries,
as well as operating system API functions. | ✔ | ✔ | ✔ | ✔ |
Built-in make facilities XDS compilers automatically
calculate dependencies between various source files of the project
and determine the minimal set of files requiring recompilation
after source change thus allowing you to build a project with complicated
structure by a single run of the compiler. | ✔ | ✔ | ✔ | ✔ |
Multithreading support | ✔ | |||
Tools | ||||
Modula-2/Oberon-2 optimizing compiler Optimizing ISO Modula-2 and Oberon-2 compiler producing 32-bit Intel x86 code. | ✔ | ✔ | ||
Built-in assembler Built-in assembler with transparent access to global objects of the program,
such as variables and procedures. | ✔ | ✔ | ||
Modula-2/Oberon-2 "via C" compiler Uses ANSI C, K&R C, or C++ as an intermeditate language,
relying on a third party C/C++ compiler to produce the binary executable.
This technique allows you to cross program in
Modula-2 and/or Oberon-2 for virtually any target environment. | ✔ | ✔ | ||
Converter of C header files (.h) to Modula-2 definition modules | ✔ | ✔ | ✔ | ✔ |
Interactive debugger with batch and remote modes support XDS Debugger provides the complete set of
interactive debugging features that one may anticipate. It also supports
remote debugging in case it is needed by the project. Its unique feature is
a "batch-mode" support that automates most intricate debugging cases and also
allows to automate exhaustive application testing by means of using debugging
scripts instead of special program code. | ✔ | |||
Smart linker | ✔ | |||
Post-mortem call history visualizer | ✔ | |||
Disassembler | ✔ | |||
Library files (.lib) manager | ✔ | |||
Resource compiler | ✔ | |||
Libraries | ||||
ISO 10514 standard Modula-2 libraries Full set of ISO 10514 libraries that may also be used from Oberon-2 code | ✔ | ✔ | ✔ | ✔ |
PIM Modula-2 libraries (InOut, LongInOut, RealInOut, MathLib0) | ✔ | ✔ | ✔ | ✔ |
TopSpeed Modula-2 compatible libraries (separate download) | ✔ | ✔ | ✔ | ✔ |
XDS-specific libraries Apart from the runtime library with a compact and efficient garbage collector
and support for Oberon-2 meta-language facilities, there are
modules that explore XDS language extensions to make programming more
comfortable and efficient. For instance, one of them provides
a C-style printf implementation. | ✔ | ✔ | ✔ | ✔ |
Multithreaded libraries Thread-safe implementation of XDS libraries may be used safely in multithreaded application.
Multithreading itself is implemented compatible with ISO 10514 standard with separate extensions
that enable you to access platform-specific features over portable ISO interfaces. | ✔ | |||
Intermediate source code of all libraries and Oberon-2 RTS with makefile C source code of all libraries and Oberon-2 RTS with the appropriate makefile is included
with XDS-C to enable retargeting, and with Native XDS-x86 for Linux - to
avoid compatibility problems across Linux versions | ✔ | ✔ | ✔ | |
Definition modules for platform APIs | ||||
Win32 API definition modules | ✔ | ✔ | ||
POSIX API definition modules | ✔ | ✔ | ✔ | |
X Window/Motif definition modules | ✔ | ✔ | ||
Documentation and samples | ||||
Documentation in PDF format | ✔ | ✔ | ✔ | ✔ |
Documentation in Windows Help format | ✔ | ✔ | ||
Documentation in HTML format | ✔ | ✔ | ||
Sample programs | ✔ | ✔ | ✔ | ✔ |
System Requirements
Native XDS-x86/XDS-C
CPU: | Intel 80386 minimum, Pentium-class or higher recommended |
RAM: | 24MB minimum, 32MB or more recommended (yes, that's megabytes) |
Disk Space: | 15MB |
Graphics Card: | (Windows only) VGA minimum, SVGA recommended for XDS IDE |
O/S: |
Microsoft Windows 7/Vista/XP/2000/NT4/9x or any Linux with kernel version 2.2 or higher |
New XDS IDE Includes both toolchains
CPU: | Pentium 2 266 MHz minimum, decent multi-core desktop CPU recommended |
RAM: | 1GB available physical RAM recommended |
Disk Space: | 325MB |
Graphics Card: | Any card capable of (comfortably) running Eclipse 4.4 |
O/S: |
Windows 8.x (Desktop) Windows 7 SP1 Windows Vista SP2 |
Notice XDS-C also needs a C or C++ compiler to operate. Out‑of‑the‑box, it supports Microsoft Visual C++ and (Open) Watcom on Windows and GCC on Linux, but can be cofigured to work with any ANSI C, K&R C, or C++ compiler.
Documentation
Downloads
The original XDS product line has been available as freeware since May 2005. While the new XDS-IDE is open source, please note that we have not open sourced the XDS toolchains yet, nor have we put them in the public domain. You may download and use XDS products only if you agree with the License Agreement given below. It is your responsibility to read it and and understand its terms and conditions, but if you are allergic to legalese, please read at least the summary.
Read Full XDS License Text or just the summary
Product | File Name | File Size |
---|---|---|
XDS 2.6 beta 2 for Windows (updated 06-Feb-2012) beta | ||
All-in-one package | xds-260-beta2-win32.exe | 6.9 MB |
XDS 2.6 beta 2 for Linux (updated 06-Feb-2012) beta | ||
All-in-one package | xds-260-beta2-linux.tgz | 6.8 MB |
Product | File Name | File Size |
Native XDS-x86 2.51 for Windows | ||
Main product | xds-x86-251-enduser-win32.exe | 6.5 MB |
TSCP add-on | tscp-x86-251-enduser-win32.exe | 2.4 MB |
Native XDS-x86 2.51 for Linux | ||
Main product | xds-x86-251-enduser-linux.tgz | 3.7 MB |
TSCP add-on | tscp-x86-251-enduser-linux.tgz | 1.2 MB |
XDS-C 2.51 for Windows | ||
Main product | xds-c-251-enduser-win32.exe | 4.6 MB |
TSCP add-on | tscp-c-251-enduser-win32.exe | 2.0 MB |
XDS-C 2.51 for Linux | ||
Main product | xds-c-251-enduser-linux.tgz | 3.1 MB |
TSCP add-on | tscp-c-251-enduser-linux.tgz | 1.3 MB |
Services
We do not provide free technical support for XDS, but you are welcome to try your luck in the forum.
As far as paid services are concerned, here is what we can help you with:
- Tune up XDS-C for the target environment(s) of your choice
- Migrate your existing Modula‑2/Oberon‑2 source code to XDS
- Port your existing Modula-2/Oberon-2 software to a new platform
- Convert Modula-2 source code to C/C++
- and so on
Get Started Now:
You may also wish to check out our Technical Report on Modula-2 source code migration and conversion.