Когда вы говорите о «приоритете» (концепция, которая предназначена для устранения неоднозначности инфиксной нотации, следовательно, не очень применима к постфиксной нотации), вы действительно подразумеваете «порядок операций», что является более широким понятием.
Следует понимать, что порядок операций, которым обучают в начальной школе (часто с легочной PEMDAS), не обязательно является порядком операций, которые компьютер будет использовать при оценке выражения, подобного a/b*(c+(d-e))
.Используя PEMDAS, вы сначала вычислите d-e
, затем c+(d-e)
и т. Д., Что равно порядку, отличному от неявного в ab/cde-+*
.Но интересно отметить, что многие языки программирования на самом деле будут оценивать a/b*(c+(d-e))
, используя порядок ab/cde-+*
, а не наивную реализацию PEMDAS.Например, если в Python вы импортируете модуль dis и оцениваете dis.dis("a/b*(c+(d-e))")
для дизассемблирования a/b*(c+(d-e))
в байт-код Python, вы получите:
0 LOAD_NAME 0 (a)
2 LOAD_NAME 1 (b)
4 BINARY_TRUE_DIVIDE
6 LOAD_NAME 2 (c)
8 LOAD_NAME 3 (d)
10 LOAD_NAME 4 (e)
12 BINARY_SUBTRACT
14 BINARY_ADD
16 BINARY_MULTIPLY
18 RETURN_VALUE
, который легко увидеть какточно такой же порядок операций, как у ab/cde-+*
.На самом деле, эту постфиксную нотацию можно рассматривать как сокращение для стековых вычислений, которые Python использует при оценке a/b*(c+(d-e))