[ESO Logo]

System Overview



NEWS

HELP

HOME

Introduction

The ESO-MIDAS system is built along lines which should allow easy integration of complex analysis algorithms as well as allowing greater flexibility in interactive use and in the creation of user specific procedures from the basic building blocks. The first design proposal for ESO-MIDAS, made late 1980, used some ideas from the UK STARLINK project for the software interface definitions. The present version which became available in 1984 follows a similar philosophy in its application program interfaces, but has been expanded to the new Standard Interfaces which have a broader base than previously.

The initial design of MIDAS was made on a DEC/VMS system in the early 80's. However, in the late 80's with the acceptance of UNIX as a standard operating system and the introduction of workstations, the system was largely redesigned and now runs on a wide variety of computers, with either DEC/VMS or one of the various flavours of UNIX as the operating system.

In this page we briefly discuss the objectives , design , the MIDAS Control Language , and data formats . Finally, we include some references related to the ESO-MIDAS project.

Objectives

In the design of MIDAS a number of basic requirements were taken into account in order to ensure the system can involve in the future. These main objectives were:

Design

The basic system was designed to work on a single computer with appropriate peripherals. It consists of the following three parts, the monitor, the applications, and the interfaces.

Monitor

The MIDAS monitor includes user interface, and routines for administration of tasks and local variables. MIDAS is command driven. All the user interaction and the scheduling of processes to execute the commands is done via the monitor. In concrete, the monitor has the following functions:

MIDAS is a multiprocess system. The monitor executes in the context of the process active when starting up the session and the applications run in either of two subprocesses, the foreground or the background subprocess. A third option is to submit applications as a job to a queue.

Applications

Applications perform the actual operations on the data. They may be written in standard Fortran77, C, or the MIDAS control language. All communication must go through the monitor and is done via keywords and frame descriptors. The functions of the applications in MIDAS are split in several levels of importance, the top level being the primary or core applications without which image processing is hardly possible. The core applications take care of:

Interfaces

The interfaces bind the applications to the monitor, and define the possible interaction with application tasks and monitor. An additional level is used to interface the MIDAS system itself to the host operating system. This lowest interface level must not be used be application programs.

MIDAS is based on three sets of general interfaces which allow easy integration of application programs into MIDAS, namely: a) the ``Standard Interfaces'' for general I/O and image access; b) the ``Table Interfaces'' for access to table structures; c) the Graphics Interfaces for easy inclusion of graphical representation of the MIDAS data structures. To provide a portable system a layer of OS-routines have been used to shield MIDAS from the local operating system. These routines may only be used at lowest levels and are not available for normal applications.

The MIDAS Control Language

The MIDAS command language, MCL, provides the tools to construct complex command procedures from existing commands. Since all application programs get their parameters via a set of standard interfaces, it is very simple to string commands together, each using results from the previous command. In fact, except for the system commands, all MIDAS commands are MCL procedures themselves.

In general, MCL provides the following basic features of a programming language like definition of parameters, looping, conditional statements and branching, global/local variables, procedure calls (also recurrent) with parameters, and built-in functions.

MCL is an interpreted language which means that the definition of local variables may be done anywhere in a procedure and no compilation and linking steps are required before executing a MCL procedure. To identify syntax and other obvious errors in long and complicated procedures the MIDAS Command Language Debugger is provided. It enables debugging of procedures as well as application code (F77 and C).

Data Formats

Data items in the MIDAS system can be divided into several groups:

References


Comments on this screen can be sent to eso-midas <midas@eso.org>
Last update: Feb 23, 1996