ETHZ_Logo RAMSES_Logo_Right    RAMSES    RAMSES_Logo_Left Systems Ecology   

Dialog Machine

A Platform Independent Graphical User Interface for Personal Computers and Workstations

1 - What Is the Dialog Machine?

The Dialog Machine is a graphical user interface (GUI) which is easy to learn, is object oriented, and is well defined, i.e. based on a formally defined user model (Fischlin & Schaufelberger 1987, Fischlin et al. 1987). The Dialog Machine is for any computer which supports at least a bitmapped graphics display, a keyboard and a pointing device such as a mouse, i.e. a personal computer as we know them today.

The Dialog Machine is based on the Modula-2 programing language (Wirth 1985, 1988). Its client interface provides the basis for highly portable programming of interactive applications, since it makes a minimum of assumptions on the properties of the underlying operating system and the hardware. Programing with the Dialog Machine, i.e. the writing of a Dialog Machine program, simplifies greatly the task of the programmer of interactive programs. The result are not only quickly written programs, but Dialog Machine programs do also behave reliably, conform to high quality standards, and are easy to use.

Up to the present implementations have been realized for the following platforms: Macintosh (Mac Classic), Atari (GEM), IBM PC (GEM, Windows 3.1 up to Windows 98, Windows NT, Windows ME, Windows 2000, and Windows XP). Unix implementations have been realized for Macintosh (Mac OS X) and Sun (Solaris) in the form of the so-called Batch Dialog Machine. The latter provides identical interfaces as the Dialog Machine (uses same definition modules), but the implementation supports no user interaction. Yet, programs designed to run interactively can still be executed easily in batch mode, thanks to the unique design of the Dialog Machine (Fischlin & Schaufelberger 1987, Fischlin et al. 1987). For more information on the Batch Dialog Machine see also the RASS (RAMSES Simulation Server) software.

For a tutorial on the concepts and how to write Dialog Machine programs see Fischlin & Thommen (2003) PDF or Keller (1989) and Keller (2003) PDF.

2 - Features

  • Interactive graphical user interface according to "Small is Beautiful"-philosophy: The GUI Dialog Machine supports simple instantiations of objects such as windows, menus (including hiearchical menus),buttons, entry forms (modal dialogs), and editable fields (modeless dialogs). It supports also the use of a pointing device such as a mouse. Offered techniques range from simple to advanced, sophisticated levels.
  • A Dialog Machine program is quickly written. Learn 30 objects (classes, methods) and you are already fit to write many Dialog Machine programs (see e.g. Keller Keller (2003) PDF.
  • The rigor of the user model provided by the Dialog Machine offers two advantages at the same time: It supports substantial simplification of the programmer's task plus ease of use of the resulting program by the end user.
  • A Dialog Machine program offers a robust and predictable behavior. The behavior of any GUI object provided by the Dialog Machine is strictly defined and thus robust and predictable. Emphasis is not only on the look, but rather the feel (behavior). Thus the end user enjoys a reliable program behavior which is simple to learn, easy to use, and behaves predictably regardless of the platform dependent look.
  • Extendable, open system philosophy: Dialog Machine programs are open to any extensions. Inherit existing functions and add your own by building on and/or enhancing the existing client interface with your own objects and routines (methods).
  • Thanks to its simplicity and formally defined basis the Dialog Machine offers a high source code portability among all supported platforms. Numerous projects have proven this to be a fact. Many non-trivial projects like ModelWorks (consisting of 7 client level modules exporting 230 procedures (methods), 55 types (classes), and 139 constants; total of 34 modules, 31'883 lines of source code) or Easy ModelWorks (consisting of 11 modules and 7'056 lines of source code) are all 100% source code portable among IBM PC (Windows), Macintosh (Mac Classic) or Unix (Mac OS X, Sun Solaris) platforms and vice versa.
  • Large library for:
    • Collection of many advanced GUI objects, e.g. lists of user selectable objects, printing, clipboard support for graphical and text objects, special windows
    • Mathematical functions and constants
    • Generation of random numbers
    • Matrices
    • Statistics
    • Data input and output from/to text-files (including rtf)
    • Graphical display of data as line charts, histograms, animated graphics etc.
  • Especially useful in the context of interactive modeling and simulation are the following additionally available, all Dialog Machine based library modules:
    • ModelWorks supporting modular modeling of complex, dynamic systems, which are formulated according to a range of mathematical formalisms (DESS, SQM, DEVS)
    • ISIS supporting modular, hierarchical modeling of complex, dynamic systems, which are formulated according to a range of mathematical formalisms (DESS, SQM, DEVS)
    • Separate integration routines for any submodel
    • Calendar functions to work with julian days
    • Table functions for interpolation of non-linear functions
    • Non-linear parameter identification
    • Display of maps for animation of interactive simulations (GIS, e.g. ARC/INFO, data input)

3 - Formal Interface

To learn about the formal interface, notably all functions of the Dialog Machine see:

  • Overview of the Dialog Machine modules.
  • Quick Reference containing all functions of the Dialog Machine in a compact format.

See also the Dialog Machine Examples.

4 - Availability

The Dialog Machine is freeware (courtesy ETH Zurich).

It comes as a part of the RAMSES modeling and simulation environment.

Download it for:

  • Mac Classic   (part of the RAMSES package)
  • Windows   (part of the Dialog Machine, ModelWorks and Auxiliary Library for Windows package)
  • Mac OS X   (part of the RASS-OSX package)
  • Sun Solaris   (part of the RASS-Sun package)

For information on the needed Modula-2 development environments for the various supported computer platforms see here.

5 - Hardware Requirements

In order to run the Dialog Machine under Mac Classic you require at least 512K of RAM and at least two 800 KB floppies. For serious work, however, we recommend of course a hard disk. The RAMSES package with which the Dialog Machine is released requires uncompressed about 17 MB of hard disk space and at least 1 MB of main memory (preferably 4 MB RAM). The Dialog Machine software is very efficient and could still be executed successfully on older, simple machines at blazing speeds, e.g. a Macintosh Plus. Small is beautiful! :-)

For the IBM PC version (under Windows 3.1 or higher) you require at least 8 MBytes RAM and a graphics monitor with at least EGA resolution (480x360 pixels) and a large hard disk.

For the IBM PC version under GEM you require at least 640 KByte RAM and a graphics monitor with at least EGA resolution and a hard disk.

As of this writing, all software offered at this site is compatible with the latest machines, i.e. on the Macintosh platform with G5 Power Macintosh systems and with any Pentium Pro based system running Windows 95, 98 or NT.

For the Unix platform all workstations or PCs running Unix offer generally sufficient RAM and hard disk space as required for compiling, linking and execution of any Dialog Machine program.

For more details on hard- and software requirements see Fischlin et al. (2006) PDF.

6 - On the Development History of the Dialog Machine

The Dialog Machine has been designed originally by Andreas Fischlin with important contributions by Alex Itten, Klara Vancso, and Olivier Roth.

It was first implemented by Andreas Fischlin, Alex Itten, Olivier Roth, and Klara Vancso during the pilot project CELTIA (Computer Aided Explorative Learning and Teaching with Interactive Animated simulation) at the Project-Centre IDA (Informatik dient allen) at the Institute of Automatic Control Theory, ETH Zurich under the auspices of Prof. Walter Schaufelberger. At that time a lot of support and important ideas were also provided by Markus Ulrich and Ingrid Berntsen.

Later versions were designed by Andreas Fischlin, Olivier Roth, Daniel Keller, and Jürg Thöny. Substantial improvements towards correctness and robustness of its implementation were made by numerous authors such as Jürg Thöny and Dimitrios Gyalistras from the Systems Ecology Group under the direction of Andreas Fischlin. All happened at ETH Zurich.

The two IBM PC implementations (under GEM respectively Windows) have been developed by Daniel Keller (Project-Centre IDA), Jürg Thöny, Thomas Wegmüller, and Fabrizio Giorgetta who all ported Dialog Machine software, e.g. ModelWorks from the Macintosh to the IBM PC and back several times.

Later developements has also been partly supported by two grants from the Swiss National Science Foundation.

7 - Cited References

Fischlin, A., & Schaufelberger, W. (1987). Arbeitsplatzrechner im technisch-naturwissenschaftlichen Hochschulunterricht. Bulletin SEV/VSE, 78(1): 15-21.

Fischlin, A., Mansour, M.A., Rimvall, M. & Schaufelberger, W. (1987). Simulation and computer aided control system design in engineering education. In: Troch I., Kopacek, P. & Breitenecker, F. (eds.), Simulation of Control Systems, IFAC/IMACS Proceedings, 13: 51-60.

Fischlin, A., & Thommen, F. (2003). On the Dialog Machine. Electronic Documentation, Systems Ecology, ETH Zurich, Switzerland, 52 pp. PDF

Fischlin, A., Gyalistras, D. & Löffler, T.J. (2006). Installation Guide and Technical Reference of the RAMSES Software (Version 3) For Apple® Macintosh® Computers. A Technical Systems Ecology Report, ETH Zurich, Switzerland, 48pp. PDF

Keller, D. (1989). Introduction to the Dialog Machine. Report No. 5, Project Centre IDA, ETH Zurich, Switzerland, 37 pp.

Keller, D. (2003). Introduction to the Dialog Machine - 2nd Edition. B. Price (editor 2nd ed.), Systems Ecology Report, ETH Zurich, Switzerland, 35 pp. PDF.

Wirth, N. (1985). Programing in Modula-2. Springer, Berlin a.o. 3rd. corr. edition. 202 pp.

Wirth, N. (1988). Programing in Modula-2. Springer, Berlin a.o. 4th. edition. 182pp.


See also the Systems Ecology Publications and Reports.


  RAMSES@env.ethz.ch Last modified 10/11/10 [Top of page]   

Modula-2 website ring
List all    |    <<  Prev    |    Next  >>    |    Join