CS 6235 - Analysis of Parallel Programs

Java Subsets

TACoJava

grammar tacojava.jj
TACOJAVA SPECIFICATION
TACoJava is a subset of Java. The meaning of a TACoJava program is given by its meaning as a Java program. Overloading is not allowed in TACoJava. The TACoJava statement System.out.println( ... ); can only print integers. The TACoJava expression e1 & e2 is of type boolean, and both e1 and e2 must be of type boolean. TACoJava does not allow clashing of method names, variable names and class names.

ParTACoJava

grammar partacojava.jj sample program and queries Instructions on building the parser
PARTACOJAVA SPECIFICATION
ParTACoJava is a subset of Java. The meaning of a ParTACoJava program is given by its meaning as a Java program. Overloading is not allowed in TACoJava. The TACoJava statement System.out.println( ... ); can only print integers. The TACoJava expression e1 && e2 is of type boolean, and both e1 and e2 must be of type boolean. ParTACoJava does not allow (i) clashing of method names, variable names and class names. (ii) the use of thread-local objects for synchronization, (iii) reentrant locking.

QTACoJava

grammar qtacojava.jj
QTACOJAVA SPECIFICATION
QTACoJava is a subset of Java. The meaning of a TACoJava program is given by its meaning as a Java program. Overloading is not allowed in QTACoJava. The QTACoJava statement System.out.println( ... ); can only print integers. The QTACoJava expression e1 & e2 is of type boolean, and both e1 and e2 must be of type boolean. QTACoJava does not allow clashing of method names, variable names and class names.

QParJava

grammar qparjava.jj
QPARJAVA SPECIFICATION
QParJava is a subset of Java. The meaning of a QParJava program is given by its meaning as a Java program. Overloading and Overriding are not allowed in QParJava. The QPARJava statement System.out.println( ... ); can only print integers. The QPARJava expression e1 && e2 is of type boolean, and both e1 and e2 must be of type boolean. QParJava does not allow clashing of method names, variable names and class names. Further, a method may contain at most one synchronization statement. In QParJava two variables with the same name are considered aliases.

QInlinedParJava

grammar qinlinedparjava.jj
QINLINEDPARJAVA SPECIFICATION
QInlinedParJava is a subset of Java. The meaning of a QInlinedParJava program is given by its meaning as a Java program. Overloading and Overriding are not allowed in QParJava. The QInlinedPARJava statement System.out.println( ... ); can only print integers. The QInlinedPARJava expression e1 && e2 is of type boolean, and both e1 and e2 must be of type boolean. QInlinedParJava does not allow clashing of method names, variable names and class names. In QInlinedParJava two variables with the same name are considered aliases.