## 14 Language Bindings

The following packages and projects offer access to GMP from languages other than C, though perhaps with varying levels of functionality and efficiency.

C++
  - GMP C++ class interface, see C++ Class Interface
    Straightforward interface, expression templates to eliminate temporaries.
  - ALP https://www-sop.inria.fr/saga/logiciels/ALP/
    Linear algebra and polynomials using templates.
  - Arithmos http://cant.ua.ac.be/old/arithmos/
    Rationals with infinities and square roots.
  - CLN http://www.ginac.de/CLN/
    High level classes for arithmetic.
  - Linbox http://www.linalg.org/
    Sparse vectors and matrices.
  - NTL http://www.shoup.net/ntl/
    A C++ number theory library.
Eiffel
  - Eiffelroom http://www.eiffelroom.org/node/442
Haskell
  - Glasgow Haskell Compiler https://www.haskell.org/ghc/
Java
  - Kaffe https://github.com/kaffe/kaffe
Lisp
  - GNU Common Lisp https://www.gnu.org/software/gcl/gcl.html
  - Librep http://librep.sourceforge.net/
  - XEmacs (21.5.18 beta and up) http://www.xemacs.org
    Optional big integers, rationals and floats using GMP.
M4
  - GNU m4 betas http://www.seindal.dk/rene/gnu/
    Optionally provides an arbitrary precision `mpeval`.
ML
  - MLton compiler http://mlton.org/
Objective Caml
  - MLGMP http://opam.ocamlpro.com/pkg/mlgmp.20120224.html
  - Numerix http://pauillac.inria.fr/~quercia/
    Optionally using GMP.
Oz
  - Mozart http://mozart.github.io/
Pascal
  - GNU Pascal Compiler http://www.gnu-pascal.de/
    GMP unit.
  - Numerix http://pauillac.inria.fr/~quercia/
    For Free Pascal, optionally using GMP.
Perl
  - GMP module, see `demos/perl` in the GMP sources (see Demonstration Programs).
  - Math::GMP http://www.cpan.org/
    Compatible with Math::BigInt, but not as many functions as the GMP module above.
  - Math::BigInt::GMP http://www.cpan.org/
    Plug Math::GMP into normal Math::BigInt operations.
Pike
  - mpz module in the standard distribution, http://pike.ida.liu.se/
Prolog
  - SWI Prolog http://www.swi-prolog.org/
    Arbitrary precision floats.
Python
  - GMPY https://code.google.com/p/gmpy/
Ruby
  - http://rubygems.org/gems/gmp
Scheme
  - GNU Guile https://www.gnu.org/software/guile/guile.html
  - RScheme http://www.rscheme.org/
  - STklos http://www.stklos.net/
Smalltalk
  - GNU Smalltalk http://www.smalltalk.org/versions/GNUSmalltalk.html
Other
  - Axiom https://savannah.nongnu.org/projects/axiom
    Computer algebra using GCL.
  - DrGenius http://drgenius.seul.org/
    Geometry system and mathematical programming language.
  - GiNaC http://www.ginac.de/
    C++ computer algebra using CLN.
  - GOO https://www.eecs.berkeley.edu/~jrb/goo/
    Dynamic object oriented language.
  - Maxima https://www.ma.utexas.edu/users/wfs/maxima.html
    Macsyma computer algebra using GCL.
  - Regina http://regina.sourceforge.net/
    Topological calculator.
  - Yacas http://yacas.sourceforge.net
    Yet another computer algebra system.