top decor
E-MMI software Educational Pascal compiler for MMIX

To download current copy of the software
please visit this link

Here is my new educational Pascal compiler, which produces code for famous MMIX computer of Donald Knuth. It makes visual the process of compilation and shows, how your program text is translated to equivalent executable MMIX code. Software has also build-in MMIX machine to execute this code immediately.

screen view

The main aim of my program is to illustrate fundamental categories of high-level languages: variable, constant, typed constant, algorithmical structure etc. Designed for educational purposes, this compiler doesn't pretend to be a development software tool - please do not require things over its possibilities.

I also wanted to show that compiler is not something mysterious. Not only Borland, but every ordinary man can understand basic compiler's logic and principles.

Since my compiler is educational one, there are some language limitations (I hope, they are not essential for our aims). Here are the most serious of them:

  • You can use only standard types of data (INTEGER, REAL, CHAR, BOOLEAN) and arrays from them.
  • All names of your variables, constants and typed constants must consist from the only latin character: A, B, C, ... Z.
  • Right part of assignment operator can't contain more than one sign of arithmetic or logical operations. For example: a:=b; a:=b-c; a:=b DIV c; a:=b OR c; a:=SQR(b); a:=SUCC(a); etc.
  • Compiler works only with "pure" algorithmical constructions: nest of cycles and conditions are not supported. (As an effect of it, the compound statement between BEGIN and END, can contain only assignment or WRITE/READ procedures).
  • READ and WRITE procedures can't contain the list of parameters - only one, for example:
    VAR c:CHAR; i:INTEGER;
    BEGIN READ(C);   WRITE(' Input char=');  WRITELN(c);
          READLN(i); WRITE('Input number='); WRITELN(i)
    END.
    

Are you disappointed? You can't imagine a real program under such limitations? Look at more than 50 build-in examples! All of them are tested with the program and works.

This software is free to use for any non-profit purposes. As usual in such cases, you must not make any changes in the software files and can copy only full complement of files you get.

P.S. Always glad to receive your comments and proposals.


Related topics:

What is E-MMI
 

  (C) 2002, Evgeny Eremin. rEd-MMI project documentation