Programming Languages  

In General > s.a. Lambda Calculus.
* Procedural languages: They contain subroutines, collections of instructions for how to operate on inert data structures to perform tasks such as sorting, searching, or displaying; Examples are BASIC, FORTRAN, Matlab, C.
* Functional languages: Examples are List and its derivatives, Prolog, Maple, Mathematica.
* Object-oriented languages: The data themselves become the organizing principle; For example, a class of objects called 'Customers' might contain names, addresses, telephone numbers, etc; the subroutines are packaged with the object, and are called 'member functions' – the Customer object might have a number of such functions, such as 'GetLastName' and 'SendBill' –; In turn, objects can be arranged in related hierarchies – for example, 'Customer' could be a sub-class of 'Person' and a super-class of 'VIPCustomer'–; Object-oriented programming has become very popular because it allows programmers to clearly associate the code with their mental models of the real world data that it represents; Examples are C++, Java, and Smalltalk.

Macsyma (1960s)
* Idea: Big, has many packages, including indicial Cartan.
@ References: Heller 91 [for statistics]; Fell 97 [for calculus].

Maple (1980s)
* Idea: Small kernel; large library (not very integrated).
@ In general: Toussaint cs.SC/01-ln.
@ Mathematical physics: Enns & McGuire 00 [non-linear equations, r PT(98)jul]; Richards 01; Enns 05 [computer algebra].
@ In physics: Greene 95 [classical mechanics]; Horbatsch 95 [quantum mechanics]; Kalashnikov gq/01 [astrophysics, cosmology]; Lake phy/05 [GRTensorII package]; Wang 06; Lynch 09 [dynamical systems].

Mathematica (1980s) > s.a. partial differential equations.
* Idea: Mathtensor is indicial; Ricci.
* Results and remarks: Compute Rijkl, not R ijkl; It has found errors in Gradshteyn & Ryzhik!
@ Books: Wolfram 91; Blachman 92; Wickham-Jones 94 [graphics]; Höft & Höft 98; Maeder 00 [computer science]; Wellin 16.
@ In physics: Feagin 94 [quantum mechanics]; Soleng 96-gq/95 [Cartan package]; Gass 98 [with CD-ROM]; Kinzel & Reents 98 [and C]; Kiselev et al 99 [fluids]; Zhang qp/02 [commutators in quantum mechanics]; Zimmerman & Olness 03; Baumann 05 [theory]; Lake phy/05 [GRTensorM package]; Romano et al 06 [continuum mechanics]; McMahon & Topa 06 [intro].
@ Mathematical physics: Cap 03; Dubin 03 [r PT(04)jun].
> Specific applications: see BRST transformations; heat [kernel coefficients]; lie algebras; spinors.

@ Books: Langtangen 12 [and scientific computation]; Kinder & Nelson 15 [physical modeling]; Parker 16 [with examples based on games].
@ Specific applications: Gourgoulhon et al JPCS(15)-a1412 [differential geometry and tensor calculus extension of Sage]; Bernard linux(15)jul [SymPy, the Python module that allows you to do symbolic mathematics, and GraviPy]; Malthe-Sorenssen 15 [classical mechanics].
> Online resources: see Python official home; codecademy site; Wikipedia page; .

Reduce (1960s)
* Idea: Widely available; semi-indicial; is now free – without garbage collection.
@ References: MacCallum & Wright 91; MacDonald 94 [IIb/III]; Grozin 97; Toussaint cs.SC/01-ln.

Other Languages
@ General references: Brown 99, 01 [Perl]; Skansholm 04 [Java]; Flanagan 11 [Javascript]; Wolfram 17 [Wolfram language].
@ C: Zachary 97 [and Mathematica].
@ C++: Cooper et al 94; Yevick 05 [computational physics and object-oriented programming]; Prata 11; McGrath 11.
@ Fortran: Crouch et al pw(07)dec [FORTRAN at 50]; > see also Wikipedia page.
@ Matlab: Kepner & Ahalt ap/02-in [MatlabMPI]; Tóth CPC(08)-a0709 [QUBIT4MATLAB v3.0]; Poon & Kim 06 [optics]; Báez-López 09 [and applications]; Bober et al 09 [engineering applications]; Davis 10 [introduction to MATLAB 7.10].
@ Pascal: Abas & Mondragon 90.

main pageabbreviationsjournalscommentsother sitesacknowledgements
send feedback and suggestions to bombelli at – modified 16 may 2017