|  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