FIDIL: A Programming Language for Scientific Computing Luigi Semenzato, Geoffrey Pike, Douglas Hauge, and Allen Downey (Professor P. N. Hilfinger) (NSF) DMS-89-19074 FIDIL (FInite DIfference Language) is a language for implementing modern algorithms for the numerical solution of partial differential equations. We have designed and implemented a target language for FIDIL, Infidel, that directly supports FIDIL's main data structures, maps and domains. Domains are sets of integer tuples, used as indices. Maps are arrays with arbitrary, dynamic index sets, that are well-suited to represent finite-difference grids. These objects are represented in Infidel by many different data structures, that are chosen at runtime on a case-by-case basis. Infidel runs on SPARC and MIPS processors and on single-processor Cray Y-MPs. To obtain adequate execution speed on the latter architecture, the runtime descriptors of maps and domains are memorized, taking advantage of the fact that even the most dynamic objects tend to maintain the same shape for a sufficiently long time. We are currently working on a version of Infidel for the CM-5. Interactive visualization of intermediate and final results of FIDIL programs is supported by VIGL, a distributed graphics library built using Tcl/Tk. VIGL uses a RPC-based client/server model, which makes it easy to port to nonstandard architectures.