Bilkent University
Department of Computer Engineering

Introduction to a New Computational Tool: CompLab: ABC compiler / solver


Igor O. Kulik
Department of Physics, Bilkent University



"CompLab" ("Compiler Laboratory") or "ABC" ("Advanced Basic-C") is a double-conversion compiler working in two parallel regimes (A anb B) one of which is similar to that of MATLAB, while the other is a professional compilation routine similar to C and FORTRAN languages. Double conversion scheme of compilation allows making advantage of both the simplicity of user code (program, commands) and at the same time of the power of C language in speed of calculation and in the capacity of using the CPU memory.

The "A" regime of ABC uses the commands: int, root, eigval, eigsparse, plot,... for on-line calculation of simple tasks like: multidimensional integration and differentition, findings roots of nonlinear equations, eigenvalues of matrices (command: eigval) and the extremely large (of size 1.000.000 x 1.000.000, when executed on a Standard desktop or laptop Pentium PC) SPARSE matrices (command:  eigsparse), plotting functions (and any mathematical expressions with special functions) and their derivatives, etc., respectively. This part has also elements of adaptive compilation, with the input code formulated in terms of mathematical tasks (solve, find, compare, creat ...) and conditions where, and, therefore,...) addressing the above routines.

The "B" regime is an exportable program of conversion to an appropriate C-code, compilation, and solution. As items of the compiler vocabulary, ABC includes variable of integer, floating point, and complex types as well as the new types (arbitrary-precision floating-point numbers, Grassman variables, creation/annihilation symbols of quantum mechanics). The C-code of program can be exported to be used (compiled and executed) on another computational platforms including: Windows, OS/2, Linux and Unix machines. The executables can be run either directly within the ABC environment, or on another machine in Windows or OS/2.


DATE: December 25, 2002, Wednesday @ 13:40