We have been able to complete our project successfully to full satisfaction.
As proposed we have created a subset of Java compiler. We were able to generate
a byte coded class file that is able run on any standard JVM. In the course
of completion we have obtained a sound knowledge over the compiler generation
techniques, general programming logic, and Java Programming environment.
The final phase
which is the generation of the class file is successfully completed and
tested. The particular class file is tested over several operating systems
(in which JVM is installed).
Though this
is an academic project we are sure that we would make future enhancements
to this project and implement a fully independent and complete Java compiler.
5.1 FUTURE ENHANCEMENTS OF THE PROJECT
This subset
of java compiler must be enhanced to a complete set of Java compiler. In
this project, the default super class is Java.lang.Object. In future, we
plan to provide support to inheritance property and thus any class could
be provided as the super class. Functional polymorphism would also be included
in the compiler. Although Java is unique for its portability, at times,
it is necessary to provide support Native libraries support. So, Native
interface support is planned in the future. We do not want to stop with
the compiler.
We have planned
to develop the Java Virtual Machine ourselves. Here VME are taken care
by standard JVM. Also only a limited set of data types are supported in
the current grammar. We have planned to support other data types like float,
double, char, long, etc. Also we have added a new format as having braces
around the reference types. This may make the programmer feel uneasy. So
we have planned to remove that format in the future enhancements.
The present
grammar does not provide support for import statements. So it becomes necessary
for the programmer to denote each reference with the complete package name
(FQN) . We have planned to remove this scheme and introduce the import statements.
Also the unique property of the OOP is creation of namespaces or packages.
We have not provided support for package creation in the subset. So we
have planned to provide support for package creation. More number of classes
will be allowed in a single file.
Also, we do not have the keywords
like static, final, etc in our grammar. Another feature we have skipped is
the statements like switch, for, do...while, etc. Support could be provided
for all these statements and keywords. We also have a plan to develop an
Integrated Development Environment similar to Sun ONE Studio, etc. These are
all the proposed future enhancements for our compiler project.