2. Source language
The source language for the compiler is mjava, a subset of Java which mainly differs from the standard language in the following points: · all classes in a program are declared in a single file (linking is not needed) · multiple inheritance is not supported (interface declarations are not allowed) · abstract classes are not admitted · static fields and static methods are not allowed · overloading is not supported · basic only flow-of-control statements ( if, if-else and while ) are implemented · basic input/output operations on the I/O standard devices are performed by invoking the C-like functions printf and scanf.
This is an example of mjava source program:
|
/******************************************************************** Sample mjava source program *********************************************************************/
public class String{ } //end of class String
public class Int{ int n; public Int(int i){ n = i; } public int f(){ return fact(n); } int fact(int n){ return n > 2 ? n * fact(n -1) : n; } } //end of class Int
public class Test{ public void main(){ int n, f; Int t; n = 0; while(n < 1 || n > 16) { printf ("Enter an integer greater than 0 and less than 17: "); scanf ("%d", &n); } t = new Int(n); f = t.f(); printf("factorial(%d)= %d\n", n, f); } } //end of class Test |