%\section*{A. Project summary}
\section{A. Project summary}
\setcounter{page}{1}
\setlength{\topmargin}{0.5cm}
\setlength{\headheight}{0.0in}
\setlength{\baselineskip}{0.17in}

%The increasing power of computers should be used not just to solve larger
%more complex problems but also to produce more attractive programming
%environments. This proposal explores the concept that environments that
%integrate interpretative and compiled subsystems are an attractive way of
%combining productivity with high performance. We intend to use Web
%technology, especially Java, to build prototype systems which explore the
%interpreter/compiler integration for both sequential and parallel systems.
%
%Our central idea is a front end compiler that produces intermediate code for
%what we call II/CVM (Integrated Interpretative/Compiled Virtual Machine)
%which can be implemented by either a high performance runtime or flexible
%interpretative mode. This research complements and builds on existing
%commercial activity as we focus on two areas - scientific computing and
%support of large scale data parallelism - which are outside the commercial
%mainstream. We have already initiated a community activity studying the use
%of Java in scientific and engineering computation which will help us make
%certain that our work is synergistic with and not competitive with
%commercial efforts. Qualitatively one can view our front end compiler as
%similar to the javac compiler's function of producing JavaVM bytecodes. The
%II/CVM will naturally need the study of such issues as Just in Time
%compilation, dynamic linking, remote loading, garbage collection, stack
%handling, communication latency hiding and the invocation of high
%performance pre-compiled runtime. Our research will lead to insights on the
%tradeoffs in placing optimizations either in the front end compiler or in
%the dynamic runtime supporting the new hybrid Virtual Machine.
%
%This project builds on our previous research in HPF where we have produced a
%very robust public domain front end which we will modify to support the
%II/CVM front end compiler. Further our Darpa funded PCRC activity has
%produced parallel compiler runtime which can support Fortran, C++ and Java
%drivers and this will be a central part of the runtime support for the
%II/CVM. Note that languages such as HPF are natural for hybrid environments
%as they largely achieve parallelism by identifying (by either automatic
%methods or user specification) coarse grain parallel constructs such as
%array primitives and forall statements which are then implemented by
%efficient runtime. Such a coarse grain analysis can in the spirit of MATLAB
%or APL, be implemented with an interpreter as this would not have
%significant overhead. We in fact built a successful but not sustainable
%prototype HPF interpreter in 1993-94 which we intend to essentially
%generalize here. We see web technology now gives us appropriate
%infrastructure which we can use to build far more effective systems than was
%possible 3 years ago. In summary, the objectives of this research include:
%\begin{list}{$\bullet$}{%
%  \setlength{\leftmargin}{0.2in}%
%  \setlength{\itemsep}{0.0in}%
%  \setlength{\parsep}{0.0in}}
%\item
%Identification of issues in optimal integration of interpretation and
%compilation techniques for parallel language systems.
%\item
%Study of the impact of the hybrid environments on performance for scientific
%and engineering applications.
%\item
%Development of a set of technologies that aim at a high performance language
%system with interpreted (Java) front end supported by compiled parallel
%runtime for solving scientific and engineering problems. Although not the
%central theme, this proposal will contribute to the understanding of the
%different ways of incorporating data parallelism in Java.
%\end{list}
%
%This proposal funds work at Syracuse University which is collaborative with
%the strong Compiler groups at Peking University and Harbin Institute of
%Technology whose local funding brings a major outside contribution to this
%proposed work.
