summaryrefslogtreecommitdiff
path: root/lang/joos/DESCR
diff options
context:
space:
mode:
Diffstat (limited to 'lang/joos/DESCR')
-rw-r--r--lang/joos/DESCR20
1 files changed, 20 insertions, 0 deletions
diff --git a/lang/joos/DESCR b/lang/joos/DESCR
new file mode 100644
index 00000000000..3696b416f05
--- /dev/null
+++ b/lang/joos/DESCR
@@ -0,0 +1,20 @@
+Joos is an acronym for Java's Object-Oriented Subset. JOOS is a
+proper subset of Java, defined as follows:
+ * its context-free syntax is restricted to the following grammar;
+ * subclassing must not change the signature of a method;
+ * declarations of locals must all be in the beginning of the statement
+ sequence in a block;
+ * protected fields cannot be accessed from without the class or its
+ subclasses; and
+ * every path through a non-void method must return a value.
+
+In addition, JOOS defines a concept of extern classes, which provide
+a convenient interface to the Java libraries without requiring the
+compiler to parse Java class files.
+
+It defines a class name and some method signatures, along with a file
+name that is guaranteed to provide the implementation. The JOOS compiler
+will implicitly trust this specification. If it is incorrect,
+then the compiled JOOS class file may fail at class loading time.
+
+JOOS is used for teaching students about compilers.