Scientific programming with an environment that combines effectively compiled and interpreted scripting at the Java platform
Stergios T. Papadimitriou, Konstantinos Terzidis · 2008
The jLab environment extends the potential of Java for scientific computing. It provides a Matlab/Scilab like language that is executed by an interpreter implemented in the Java language. The language supports the basic programming constructs with Matlab like matrix manipulation operators. The jLab core provides the general purpose functionality with an extensive set of built in mathematical routines that cover all the basic numerical analysis tasks. The important advantage of jLab compared to other similar environments is the potentiality to dynamically and automatically integrate Java code to the system in order to obtain both execution speed and to reduce the programming effort. This task is supported both by an easy to use extension Java class wizard and by application specific class wizards that automate the utilization of jLab's scientific libraries. However, the incorporation of external Java general purpose code is not as convenient as the code development is. Also, j-scripting is relatively slow compared to Groovy that operates by compiling the scripts to Java classes. This was the motivation for the adaptation of the general purpose Groovy scripting SuperJava language as a parallel and cooperative option in the jLab environment. The paper concentrates on the issues involved in the implementation of the multiscripting environment and on the benefits that can be obtained by the combination of these two very different frameworks. The Groovy agile language for the Java platform is both very flexible and powerful. We describe the modifications to the Groovy language and some of the most basic extensions that we have implemented in order to build the GroovySci language, the compiled language of the jLab platform.