Zero to the power of zero

Zero to the power of zero, denoted by , is a mathematical expression with no agreed-upon value. The most common possibilities are 1 or leaving the expression undefined, with justifications existing for each, depending on context.
In algebra and combinatorics, the generally agreed upon value is , whereas in mathematical analysis, the expression is sometimes left undefined. Computer programming languages and software also have differing ways of handling this expression.
Discrete exponents.
Many widely used formulas involving natural-number exponents require to be defined as . For example, the following three interpretations of make just as much sense for as they do for positive integers :
All three of these specialize to give .
Continuous exponents.
Limits involving algebraic operations can often be evaluated by replacing subexpressions by their limits; if the resulting expression does not determine the original limit, the expression is known as an indeterminate form. The expression is an indeterminate form: Given real-valued functions and approaching (as approaches a real number or , from one side or both sides) with (on each relevant side), the limit of can be any non-negative real number or , or it can diverge, depending on and . For example, each limit below involves a function with as (a one-sided limit), but their values are different:
Thus, the two-variable function , though continuous on the set , cannot be extended to a continuous function on , no matter how one chooses to define .
On the other hand, if and are both analytic functions on an open neighborhood of a number , then as approaches from any side on which is positive.
Complex exponents.
In the complex domain, the function may be defined for nonzero by choosing a branch of and defining as . This does not define since there is no branch of defined at , let alone in a neighborhood of .
History.
As a value.
In 1752, Euler in "Introductio in analysin infinitorum" wrote that and explicitly mentioned that . An annotation attributed to Mascheroni in a 1787 edition of Euler's book "Institutiones calculi differentialis" offered the "justification" 
as well as another more involved justification. In the 1830s, Libri published several further arguments attempting to justify the claim , though these were far from convincing, even by standards of rigor at the time.
As a limiting form.
Euler, when setting , mentioned that consequently the values of the function take a "huge jump", from for , to at , to for .
In 1814, Pfaff used a squeeze theorem argument to prove that as . 
On the other hand, in 1821 Cauchy explained why the limit of as positive numbers and approach "while being constrained by some fixed relation" could be made to assume any value between and by choosing the relation appropriately. He deduced that the limit of the full "two-variable" function without a specified constraint is "indeterminate". With this justification, he listed along with expressions like in a table of indeterminate forms. 
Apparently unaware of Cauchy's work, Möbius in 1834, building on Pfaff's argument, claimed incorrectly that whenever as approaches a number (presumably is assumed positive away from ). Möbius reduced to the case , but then made the mistake of assuming that each of and could be expressed in the form for some continuous function not vanishing at and some nonnegative integer , which is true for analytic functions, but not in general. An anonymous commentator pointed out the unjustified step; then another commentator who signed his name simply as "S" provided the explicit counterexamples and as and expressed the situation by writing that " can have many different values".
Current situation.
There do not seem to be any authors assigning a specific value other than 1.
Treatment on computers.
IEEE floating-point standard.
The IEEE 754-2008 floating-point standard is used in the design of most floating-point libraries. It recommends a number of operations for computing a power: 
The codice_1 variant is inspired by the codice_1 function from C99, mainly for compatibility. It is useful mostly for languages with a single power function. The codice_2 and codice_3 variants have been introduced due to conflicting usage of the power functions and the different points of view (as stated above).
Programming languages.
The C and C++ standards do not specify the result of (a domain error may occur). But for C, as of C99, if the normative annex F is supported, the result for real floating-point types is required to be because there are significant applications for which this value is more useful than NaN (for instance, with discrete exponents); the result on complex types is not specified, even if the informative annex G is supported. The Java standard, the .NET Framework method codice_9, Julia, and Python also treat as . Some languages document that their exponentiation operation corresponds to the codice_1 function from the C mathematical library; this is the case with Lua and Perl's codice_11 operator (where it is explicitly mentioned that the result of codice_12 is platform-dependent).
Mathematical and scientific software.
APL, R, Stata, SageMath, Matlab, Magma, GAP, Singular, PARI/GP, and GNU Octave evaluate to . Mathematica and Macsyma simplify to even if no constraints are placed on ; however, if is entered directly, it is treated as an error or indeterminate. SageMath does not simplify . Maple, Mathematica and PARI/GP further distinguish between integer and floating-point values: If the exponent is a zero of integer type, they return a of the type of the base; exponentiation with a floating-point exponent of value zero is treated as undefined, indeterminate or error.