[net.lang.lisp] What language do you use for scientific programming?

vollum@rtp47.UUCP (Rob Vollum) (08/16/85)

In article <909@oddjob.UUCP> paul@oddjob.UUCP (Paul Schinder) writes:
>
>I've been curious for a while what scientist/engineering types on the net
>use for scientific programming.  
>         <some editing>
>The advantages of fortran in my opinion are 1.
>at least two real precisions, 2. standard and powerful i/o routines, and 3.
>very wide availability with great portability (because of the existance of a
>standard for the language).  Is there any other language which shares these
>properties but also has some of the constructs I would like to use (while,
>do ... while, case, structures, pointers).  
>
>Reply via e-mail; if there is a large enough response, I'll summarize in a
>few weeks. Thanks.
>-- 
>				Paul Schinder

(I did reply, at length, via e-mail, but I had to post here as well. I'll
keep it short.)

I vote for Common Lisp. Beyond the excellent programming environment it
provides, it gives a rich set of numerical operations as well. It has:
infinite precision integers, complex numbers, many flavors of floating
point numbers, and for those who don't like roundoff error, true
rational numbers.

As for control structure, it provides iteration, conditionals, lexical 
closures of functions (i.e. functions as first class citizens), and 
recursion, to name some important ones. It also uses lexical scoping for
semantic cleanliness, and for when you need(?) global variables, it provides
"special variables", which are essentially globals where you can stack
values by binding, or assign new global values by straight assignment.

Common Lisp supports a robust structure facility for data abstraction,
and a macro-defining facility for language extension.

For I/O, the FORMAT statement and use of the abstract notion of I/O streams
provide a more robust I/O engine than most people could ever fully use
(a good point?).

For a standard language, well, it's trying. One of the ideas of Common Lisp
is to unify the Lisp community. We'll see if a 'real' standard ever happens.

Concerning efficiency, there is no reason, given improved compilers that
handle type-inferencing and type-propagation, for example, that
compiled Common Lisp can't be as fast as compiled anything else in most
cases; certainly in most 'simple' numerical applications that would
be handled by a Fortan program (simple here means 32-bit integer or
single- or double-precision arithmetic).

(Did I keep that short?)

---


-- 
Rob Vollum
Data General Corp.
Research Triangle Park, NC
<the world>!mcnc!rti-sel!rtp47!vollum

mff@wuphys.UUCP (Swamp Thing) (08/23/85)

In article <147@rtp47.UUCP> vollum@rtp47.UUCP (Rob Vollum) writes:
>Concerning efficiency, there is no reason, given improved compilers that
>handle type-inferencing and type-propagation, for example, that
>compiled Common Lisp can't be as fast as compiled anything else in most
>cases; certainly in most 'simple' numerical applications that would
>be handled by a Fortan program (simple here means 32-bit integer or
>single- or double-precision arithmetic).
>-- 
>Rob Vollum
>Data General Corp.
>Research Triangle Park, NC
><the world>!mcnc!rti-sel!rtp47!vollum

Most people are concerned with what's available now, not what will be available
sometime, mabye.

As for the original question, most scientists I know crunch there numbers in
Fortran (myself included, although I've done some other programing in C).  Most
people who have switched to C now consider Fortran to be slime.  And most
people who refuse to program in C have never done so.  (This all applies to
people I know, not in general).  F66 certainly had it's problems, most notably
a serious lack of control strucures.  F77 is much better.

As a side note, while we've all heard that the Cray-2 will be running Unix, the
one curently running at Livermore is not (it has the same operating system as
the Cray-1's there) and all the number crunching will still be done in Fortran.
There will be a C compiler for support of the Unix system.  I suspect that it
will be a long time before someone comes up with a C compiler that's as
vectorizing and as optimized as the Fortran compilers that they use.

						Mark F. Flynn
						Department of Physics
						Washington University
						St. Louis, MO  63130
						ihnp4!wuphys!mff

"There is no dark side of the moon, really.
 Matter of fact, it's all dark."

				P. Floyd