Кіріспе
Оператордың басымдығы ұғымы Бағдарламалау тілдерінде, ғылыми калькуляторларда және ұқсас ортақ операторлық жазу немесе операторлық грамматика математикалық және басқа да формальды өрнектерді анықтау мен талдаудың тәсілі болып табылады. Бұл модельде токендердің сызықтық тізбектері екі сыныпқа бөлінеді: операторлар және операндтар. Операндтар – операторлардың жұмыс істейтін объектілері. Бұларға нақты сандар мен басқа да тұрақтылар, сондай-ақ қарапайым скалярлық айнымалылардан бастап күрделі агрегаттық құрылымдар мен объектілерге дейін кез келген нәрсені білдіретін идентификаторлар (атаулар) кіреді, бұл пайдалану контекстінің күрделілігі мен мүмкіндіктеріне байланысты. Операндтың ерекше түрі – жақшалы топ. Жақшаға алынған өрнек әдетте келесі бағалау деңгейінде бір операнд ретінде қарастырылуы үшін рекурсивті түрде бағаланады. Әр операторға орын, басымдық және ассоциативтілік беріледі. Оператордың басымдығы – екі түрлі басымдылығы (немесе приоритеті) бар операторлармен қоршалған операндты қай оператор қабылдайтынын анықтайтын сан (жоғарыдан төменге немесе керісінше). Мысалы, көбейту әдетте қосудан жоғары басымдыққа ие, сондықтан 3+4×5 = 3+(4×5) ≠ (3+4)×5. Оператордың орнына қарай, ол префикс, постфикс немесе инфикс болуы мүмкін. Префикс операторы оның операндысының алдында келеді, мысалы, −x. Постфикс операторы операндысынан кейін тікелей келеді, мысалы, x!. Инфикс операторы сол және оң операндтардың арасында орналасады, мысалы, x+y. Кейбір тілдер, әсіресе C синтаксис отбасы, осы дәстүрлі терминологияны кеңейтеді және үштік инфикс операторлары (a?b:c) туралы да сөз етеді. Теориялық тұрғыдан алғанда, жақшаларды униарлы бификс операциясы ретінде анықтау да мүмкін (бірақ міндетті түрде практикалық емес).
In programming languages, scientific calculators and similar common operator notation or operator grammar is a way to define and analyse mathematical and other formal expressions. In this model a linear sequence of tokens are divided into two classes: operators and operands. Operands are objects upon which the operators operate. These include literal numbers and other constants as well as identifiers (names) which may represent anything from simple scalar variables to complex aggregated structures and objects, depending on the complexity and capability of the language at hand as well as usage context. One special type of operand is the parenthesis group. An expression enclosed in parentheses is typically recursively evaluated to be treated as a single operand on the next evaluation level. Each operator is given a position, precedence, and an associativity. The operator precedence is a number (from high to low or vice versa) that defines which operator takes an operand that is surrounded by two operators of different precedence (or priority). Multiplication normally has higher precedence than addition, for example, so 3+4×5 = 3+(4×5) ≠ (3+4)×5. In terms of operator position, an operator may be prefix, postfix, or infix. A prefix operator immediately precedes its operand, as in −x. A postfix operator immediately succeeds its operand, as in x! for instance. An infix operator is positioned in between a left and a right operand, as in x+y. Some languages, most notably the C syntax family, stretches this conventional terminology and speaks also of ternary infix operators (a?b:c). Theoretically it would even be possible (but not necessarily practical) to define parenthesization as a unary bifix operation.
Жалпы операторлық белгілендірудің жалпылануы
Оператордың артықшылық кластарын және ассоциативтіліктерін пайдалану – бұл тек бір жол ғана. Дегенмен, бұл ең жалпы жол емес: бұл модель операторға ‘-’ символымен бәсекелескенде, ‘+’ символымен бәсекелескенге қарағанда артық басымдық бере алмайды, әрі ‘+’ және ‘-’ символдарына тең басымдықтар мен ассоциативтіліктерді сақтайды. Бұл модельдің жалпыланған нұсқасын (әр операторға тәуелсіз сол және оң басымдықтар беріледі) мына жерде табуға болады.