section_path: In programming languages
section_name: In programming languages
paragraph_text: In programming languages
  
  Programming languages generally express exponentiation either as an infix operator or as a function application, as they do not support superscripts. The most common operator symbol for exponentiation is the caret (^). The original version of ASCII included an uparrow symbol (↑), intended for exponentiation, but this was replaced by the caret in 1967, so the caret became usual in programming languages. The notations include:
  
  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:
  
  Still others only provide exponentiation as part of standard libraries:
  
  In some statically typed languages that prioritize type safety such as Rust, exponentiation is performed via a multitude of methods: