text: x ** y. The Fortran character set did not include lowercase characters or punctuation symbols other than +-*/()&=.,' and so used ** for exponentiation (the initial version used a xx b instead.). Many other languages followed suit: Ada, Z shell, KornShell, Bash, COBOL, CoffeeScript, Fortran, FoxPro, Gnuplot, Groovy, JavaScript, OCaml, F#, Perl, PHP, PL/I, Python, Rexx, Ruby, SAS, Seed7, Tcl, ABAP, Mercury, Haskell (for floating-point exponents), Turing, and VHDL.
  x ↑ y: Algol Reference language, Commodore BASIC, TRS-80 Level II/III BASIC.
  x ^^ y: Haskell (for fractional base, integer exponents), D.
  x⋆y: APL.
  In most programming languages with an infix exponentiation operator, it is right-associative, that is, a^b^c is interpreted as a^(b^c). This is because (a^b)^c is equal to a^(b*c) and thus not as useful. In some languages, it is left-associative, notably in Algol, Matlab, and the Microsoft Excel formula language.
  Other programming languages use functional notation:
  (expt x y): Common Lisp.
  pown x y: F# (for integer base, integer exponent).
  Still others only provide exponentiation as part of standard libraries:
  pow(x, y): C, C++ (in math library).
  Math.Pow(x, y): C#.
  math:pow(X, Y): Erlang.
  Math.pow(x, y): Java.
  [Math]::Pow(x, y): PowerShell.
  In some statically typed languages that prioritize type safety such as Rust, exponentiation is performed via a multitude of methods:
  x.pow(y) for x and y as integers
  x.powf(y) for x and y as floating point numbers
  x.powi(y) for x as a float and y as an integer