Making Applications Programmable
Paul F. Dubois · Computers in Physics · 1994
I magine a physics program written in Fortran, whose user interface is a programming language (not Fortran, of course, but imagine something similar).In this programming language you can create variables, assign values, loop, if-test, define functions, and so on.Additionally, the major variables and functions in the Fortran modules are known to this interface language, so that through the user interface you can assign values to variables, execute Fortran modules, print out the values of variables, plot them, and so on.The Fortran variables and functions are accessible in the user interface language, as if they were built in to it.I call this a "programmable application."This article will explain the general principles behind programmable applications and the benefits of using this approach to scientific programming.Over the last nine years my team and I have developed and used The Basis System, a collection of software for creating programmable applications.It has been used in over 100 applications and is currently used in some of Lawrence Livermore National Laboratory's most important programs.This experience is the basis for this article, but this article is not about Basis per se.Programmable applications are more powerful, much easier to develop and debug, and have a longer lifetime.The fact that an application is going to be programmable frequently changes the entire approach.Especially interesting is the evolution of the division between the compiled and interpreted portions of the program.