The Sigma graphical user interface

The Sigma graphical user interface


Entries for this page:
Background

Algorithmic development is the very core of Signal Processing and Systems Engineering. As the computers become faster and faster, the more advanced and complex algorithms are developed. Yet, little has been done to make the task of programming these more advanced and complex algorithms easier or more efficient. Well, with one shining exception. MATLAB® supports the syntax of matrix algebra and two dimensional arrays. It was revolutionary when it came out in 1984, and has been instrumental in the development of algorithms involving matrix calculations such as the Array processing algorithms. It has, however, two drawbacks, which are becoming more and more severe. It is only an interpreted language, and it does not support multidimensional arrays with dimension greater than two.

This unsatisfactory situation has prompted the Systems and Control Group to look into the problem of developing a general programming language for numerical algorithms supporting various types of multidimensional arrays, taking into special consideration the role of sums and FOR-loops in such algorithms. The language they have developed is called SIGMA! It is built around the idea of indexsets, and is constructed in such a way that typical numerical algorithms are written in a natural and efficient way.

The first step towards a complete algorithmic development environment for developing algorithms in the SIGMA-language was taken in June 1994, when a project was started to develop an interpretor for the language. This work is still ongoing, but since June 1995 there exists a interpretor embedded in a terminal-based user environment.

The aim of this project was to implement a graphical user interface as a vital part of the development environment that has been in the project plan since its conception.

Outline of report

This section will give a synopsis about the structure of my report and the contents of the several chapters and sections.

  1. A general overview about the developing environment is given in this chapter.
    1. This section will draw out why the NeXTStepTM environment was used for this project.
    2. More detailed information about the SIGMA-application can be found in this section. Pictures about the structure of the several units and screenshots of their interfaces are shown here.
  2. In this chapter the author lists some ideas for further development; what can and what should be done.
    1. This section lists some ideas to improve the SIGMA-system in general.
    2. This section lists ideas for further development of the system.
  3. This chapter gives a short introduction to the Objective-C programming language and shows some differences to C++.
    1. Most of the SIGMA GUI is written in Objective-C and this section shows some reasons for this.
    2. A brief description about Objective-C is given in this section and the language is compared to C++.
    3. This section explains a few extensions to in the NeXT Objective-C development environment.
  4. This chapter depicts which Objective-C classes are used in the application and from what Application KitTM classes they are subclassed.
  5. This chapter can be used as a programming reference manual, since it lists all classes used in the SIGMA-application in conjunction with descriptions of their variables and methods.
  6. This chapter is designated to programmers, where problems discovered during the development are discussed and how they were solved; why this or that is implemented in this way and for what reasons.
    1. Detailed information about the Kernel object, which acts as a filter between the unit that holds the SIGMA-interpretor and the the rest of the system, can be found in this section.
    2. This section gives some tips for the programmer who wants to mix Objective-C and C++ code.
    3. Explanations and notes about threads is given in this section.
    4. This section gives some details about the general layout of an application during the development and which problems are tied with this.

If you are now more interested in this project you can