You can do it. Don't.1
\documentclass{article}
\makeatletter
\begingroup\lccode`~=`* \lowercase{\endgroup\def~}{\wagner@starstar}
\newcommand{\wagner@starstar}{%
\@ifnextchar*{\wagner@superscript}{\wagner@asterisk}%
}
\newcommand{\wagner@superscript}[1]{^}
\mathchardef\wagner@asterisk=\mathcode`*
\AtBeginDocument{\mathcode`*="8000 }
\makeatother
\begin{document}
$A*B$
$a**2$
$\begin{array}{*{2}{c}}
a & b\\
c & d
\end{array}$
\end{document}

1 It's true that several languages use ** for denoting exponentiation (but several others use ^). They might also have rules about the interpretation of 2**3**4, which TeX doesn't have and they probably accept 2 ** 12 and this will definitely give the wrong result with TeX. Not because of the spaces, which are basically ignored in math mode, but because 2^{12} is the correct input. You could also be prone to type things like 2**(3+5) that would lead to disaster.
When in Rome, do as the Romans do.
^when you deal with limits? Do you use**as well? As in,\sum_{i=0}**n? – Werner Nov 29 '15 at 18:57*is something that is used in command definitions, like\newcommand*or\renewcommand*, or even inarraycolumn specifications:*{<num>}{<col spec>}... – Werner Nov 29 '15 at 19:00**input into^as you type, therefore eliminating the need to redefine any commands? – BMWurm Nov 30 '15 at 11:17