Well, since parentheses exist precisely to specify the intended order of operations in case the usual default rules don't cut it, it makes sense that they come first
As for exponentation, I'd say that this is a consequence of using superscripts to indicate exponentation, since those (via font size) provide a natural grouping. It'd certainly be very weird if $a^b + c$ meant $a^{(b+c)}$ instead of $(a^b) + c$, since the different font sizes of $b$ and $c$ indicate that they're somehow on different levels.
As MJD pointed out though, this arguments only applies to the exponent. Font size alone doesn't explain why $a + b^c$ means $a + (b^c)$ and not $(a + b)^c$ and the same for $a\cdot b^c$ vs. $a\cdot(b^c)$ respectively $(a\cdot b)^c$. For these, I'd argue that it's also a matter of visual grouping. In both $a\cdot b^c$ and $a + b^c$, the exponent is written extremely close to the $b$, without a symbol which'd separate the two. On the other hand $a$ and $b$ are separated by either a $+$ or a $\cdot$. Now, for multiplication the dot may be omitted, but it doesn't have to be omitted, i.e. since $ab$ and $a\cdot b$ are equivalent, one naturally wants $ab^c$ and $a\cdot b^c$ to be equivalent too.
For multiplication, division, addition subtraction, I always felt that the choice is somewhat arbitrary. Having said that, one reason that does speak in favour of having multiplication take precedence over addition is that one is allowed to leave out the dot and simply write $ab$ instead of $a\cdot b$. Since this isn't allowed for addition, in a lot of cases the terms which are multiplied will be closer together than those which are added, so most people will probably recognize them as "belonging together".
You may then ask "how come we're allowed to leave out the dot, but not the plus sign". This, I believe is a leftover from times when equations where stated in natural language. In most langues, you say something like "three apples" to indicate, well, three apples. In other words, you simply prefix a thing by a number to indicate multiple instances of that thing. This property of natural languages is mimicked in equations by allowing one to write $3x$ with the understanding that it means "3 of whatever $x$ is".
Not everyone was taught what you say. I was not, for example. I was never taught how to write expressions with exponents in-line, so I never found out what the canonic meaning of x^a+b
actually is.
What I was taught is that whenever there is some confusion and there may exist two ways of interpreting an expression, I should use parentheses. And that is exactly what you need to start doing.
The thing is that by now, the notation has become so widely used with no central rule telling us what the only proper way of evaluation is, that it no longer makes much sense to try to impose a world-wide standard.
Taking this into consideration, the answers are:
- There is no general correct rule for this kind of operation. Brackets are the way to go. There is no international standart.
- The following expressions should be evaluated as "input unclear". If you get an expression like that to evaluate, ask the author of the expression to further explain what they meant.
Best Answer
Consider that whenever you write a numeral with more than one digit, that's concatenation, denoted by the empty string, and it always has higher precedence than arithmetic operators. $12+12$ is $24$, not $132$, and $12 \times 12$ is $144$, not $122$. So one argument is that if you're going to give concatenation an alternate symbol, the simplest choice is to keep the precedence the same.
(This is a bit more complicated when multiplication is also denoted by the empty string, in which case for example $3(1+2)$ means $9$, not $33$, and $10x$ means ten times $x$, not $10^{2+\lceil \log_{10}{x} \rceil}+x$. The ambiguity is resolved by making the empty string denote concatenation when both operands are digit strings and multiplication otherwise. But that's not a universal convention, think about those puzzles where you're supposed to solve for the unknown digits, like $10x + y0x = x10$.)
On the other hand it may be more aesthetic to associate precedence with the appearance of the glyph. The double vertical bar I think creates a sense of wide spacing, so it looks like it should be a low precedence operator.
perl has a separate operator for concatenation (.) and it is given a low precedence. Personally I prefer $\cdot$ (\$\cdot\$) to the double vertical bar, and I would prefer it to have a high precedence. But there isn't really one right way to do it. I think it's possible to walk a narrow path and avoid either overusing parentheses or tediously explaining your usage: just use it enough times in a context where there is only one sensible interpretation of the precedence, and an attentive reader can figure it out.