[net.sources] public domain FORTRAN: summary

gabriel@anl-mcs.ARPA (John Gabriel) (04/28/86)

Here is a little more information about TOOLPACK. For more details
mail cowell@anl-mcs.arpa.
TOOLPACK is an application of the "pack" (Eispack, Linpack, Minpack...)
paradigm to the question of a general purpose "Extended SCCSS" for those
who have only a FORTRAN compiler, and some rather arbitrary O/S
environment. It comprises a set of tools for developing, managing,
and testing large FORTRAN programs or Application Libaries in
environments not having the UNIX tools. Typical tools in the package
are:-

	A Precision Transformer. This is a special case of some
	more general tools for program transformation, I think
	this one simply converts single precision to double
	precision and vice versa. The underlying paradigm is to
	build a parse tree for the input, match various patterns
	against sub trees, and apply rewriting rules when the
	patterns match.

	Static Analysis Tools, e.g. type checking across subroutine
	calls, call trees etc.

	Dynamic Analysis Tools, the analogoue of the UNIX profile tools.

	Polish, a Pretty Printer.

	A Standardiser for Declarations.

The system originated as a collaborative effort including Argonne MCS
division, universities, and I think NAG. For the full history enquire 
of cowell loc. cit.

A major point to be made about the system is that its basis is FORTRAN
as the "Universal Assembler", i.e. everybody (on mainframes) has a
FORTRAN, and many of the physics/engineering/numerical analysis community
did not, and still do not have a UNIX environment. This is especially
true outside the USA, and is more true than we often realise of
engineers and physicists here.  A pupose of TOOLPACK
was to explore what could be done in FORTRAN along the lines of
the Software Tools to help developers of large numerical software
systems gain productivity.

		John Gabriel	(gabriel@anl-mcs.arpa)
				Mathematics & Computer Science Division
				Argonne National Laboratory
				9700S. Cass Ave.
				Argonne, IL 60439
				(312) 972-7240