MIKE(ID:5822/mik002)

Algebraic Modula 2 


Structured programming language for algebraic computation, based on Modula but with left to right assignment

Borrowed the notion of the rail (consistent type aggregates) from 3-Lisp, and some of the typographical conventions of TeX to serve as maths symbols


Related languages
3-LISP => MIKE   Incorporated some features of
Modula-2 => MIKE   Based on
Scratchpad II => MIKE   Influence
TeX => MIKE   Incorporated some features of

References:
  • Coolsaet K., "An introduction to MIKE, a new structured programming language", Studies in Logic, Grammar and Rhetoric VII, BIALYSTOCK 1988. view details
  • Coolsaet K., "The programming language MIKE", Introducing CAGE, Reports of the CAGe project 1, Gent 1989 view details
  • Coolsaet K., Preliminary report on the programming language MIKE, Reports of the CAGe project P, Gent 1989 view details
  • Coolsaet K., "Design and implementation of MIKE, a programming language for nonnumerical mathematics", Gent 1991, (PhD thesis, in Dutch). view details
  • Coolsaet K., "A quick introduction to the programming language MIKE" pp37-46 view details Abstract: MIKE is a new programming language developed by the author as a base language for the development of algebraic and symbolic algorithms. It is a structured programming language with a MODULA-2-like syntax supporting special features such as transparent dynamic memory management, discriminated union types, operator overloading, data abstraction and parametrized types. This text gives an overview of the main features of the language as of version 2.0.

    DOI Extract: Introduction
    Introduction
    Although it is perfectly possible to develop algebraic and symbolic algorithms using classical structured programming languages like PASCAL, MODULA-2 or C, those who have attempted it will agree that in most cases a lot of programming overhead is needed and that awkward programming techniques need sometimes be used. The programming language LISP, a common alternative for this kind of work, also has several drawbacks, such as the unnatural prefix notation for mathematical operations, the many parentheses and the lack of a proper type checking mechanism. In our opinion what is really needed is a programming language that combines the best of both groups. Some years ago therefore we set out to develop a language of our own, called MIKE (for no particular reason).
    Although MIKE was originally intended for computer algebra, we like to point out that MIKE is quite different from traditional computer algebra systems like REDUCE or MACSYMA. These systems provide an interactive frontend to the mathematician who wants to be relieved of tedious mathematical calculations. MIKE is a non-interactive programming language for the development of abstract mathematical and symbolic algorithms. Additionally, traditional computer algebra systems tend to favor a small set of mathematical structures (mostly Z, Q, R, C and polynomials and matrices over these rings), but MIKE is meant to be used for less commonly known mathematical structures (like finite groups, finite fields, p-adic numbers,...). In this, MIKE resembles the computer algebra language SCRATCHPAD-II, developed by IBM.
    MIKE is more than a computer algebra language and may be used for symbolic work in general, such as the development of expert systems, mathematical provers and proof checking programs, even programming languages. Indeed, the MIKE compiler itself was written in an early version of MIKE.
          in SIGPLAN Notices 27(06) June 1992 view details