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;
Liengme 19 [primer].
@ 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];
Kuusela a1905 [Clifford algebras, gamma matrices and spinors].
@ Mathematical physics:
Cap 03;
Dubin 03
[r PT(04)jun];
Rybalka a2111
[SimpleTensor package for tensor and differential-geometry calculations].
> Specific applications: see BRST transformations;
clifford algebra; heat [kernel coefficients];
lie algebras; spinors.
Python > s.a. computational physics and specific areas.
@ Books:
Langtangen 12 [and scientific computation];
Kinder & Nelson 15 [physical modeling];
Parker 16 [with examples based on games].
@ And physics:
Malthe-Sorenssen 15 [classical mechanics];
Moruzzi 20;
Gezerlis 20; Hill 20.
@ Other 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];
Stewart 17 [scientific Python].
> Online resources:
see Python official home;
codecademy site;
Wikipedia page;
Python courses for ethical hackers.
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.
> Online resources:
see Guru99 tutorial library.
main page
– abbreviations
– journals – comments
– other sites – acknowledgements
send feedback and suggestions to bombelli at olemiss.edu – modified 25 apr 2022