2.5 算符优先
算符优先是编译原理中最难的考点。
↑是指数运算,1的1次方.(E)等等这些符号.给出这一个文法我们是能够计算它的优先级的。计算这些符号的优先级的。知道一个完整的文法之后是会计算出它的优先级的。
(1)↑代表的是指数运算。X↑Y代表的是X的Y次方等于多少。↑的优先级最高,遵循右结合。2↑3↑2=2↑9=512.遵循右结合,所以先算3↑2=9.同样的符号↑为什么会有优先级的区别而不是相等的优先级,其实优先级是分了前后关系的.虽然是相同的符号,而且也没有括号的影响,但是一个表达式中出现了两种这种符号的时候,
(2)对于加减乘除就刚好相反了。四则运算:3+2-1,会先计算3+2再计算2-1.同样3-2+1也是如此.如果+和-是平级运算,如果我们认为+和-平级是错误的.因为如果-=+,那就代表既可以先运算+也可以先运算-。尝试一下在这样一个式子中先运算+是不是正确。所以-和+不是相等的,有先后顺序。越靠左边优先级越高。在没有括号干预的情况下。由于+-和*/都服从左结合,所以左边的即使是同一级别的运算符,左边的优先级会比右边的高。右结合的运算右边的优先级会比左边的高。
从这一些优先符我们可以构造出一个表来.构造出一个算符优先关系的表。