Кіріспе
Операторлар басымдығы грамматикасын түсіндіретін төменнен жоғарыға талдаушы. Компьютер ғылымында операторлар басымдығы грамматикасын түсіндіретін төменнен жоғарыға талдаушы – бұл операторлар басымдығы грамматикасын интерпретациялайтын талдаушы. Мысалы, көптеген калькуляторлар операторлар басымдығын пайдаланып, амалдардың орындалу ретіне сүйенетін, адам оқи алатын инфикс жазбасын кері поляк жазбасы (RPN) сияқты есептеуге қолайлы форматқа аудару үшін қолданылады. Эдсгер Дикстраның сұрыптау алаңы алгоритмі операторлар басымдығы талдаушыларын іске асыру үшін кеңінен қолданылады.
In computer science, an operator precedence parser is a bottom up parser that interprets an operator precedence grammar. For example, most calculators use operator precedence parsers to convert from the human readable infix notation relying on order of operations to a format that is optimized for evaluation such as Reverse Polish notation (RPN). Edsger Dijkstra's shunting yard algorithm is commonly used to implement operator precedence parsers.
Басқа талдаушылармен байланыс
Оператордың басымдылық талдаушысы – LR(1) грамматикасының бір бөлігін талдай алатын қарапайым жылжыту-қайтару талдаушысы. Нақтырақ айтқанда, оператордың басымдылық талдаушысы барлық LR(1) грамматикасын талдай алады, егер ешбір ережеде екі тікелей терминал емес элементі және эпсилон оң жағында кездеспесе. Оператордың басымдылық талдаушылары практикада жиі қолданылмайды; алайда, олардың кейбір қасиеттері оларды үлкен жобаларда пайдалы етеді. Біріншіден, оларды қолмен жазу оңай, ал бұл күрделі оңға жылжыту-қайтару талдаушыларына тән емес. Екіншіден, оларды орындалу кезінде оператор кестесін қарау үшін жазуға болады, бұл оларды тілдер үшін қолайлы етеді, олар талдау кезінде операторларын қосуға немесе өзгертуге мүмкіндік береді. (Мысалы, Haskell пайдаланушы анықтаған инфикс операторларын, өздігінен ассоциативтілік пен басымдылықпен қолдануға рұқсат береді; соған сәйкес, барлық сілтемеленген модульдерді талдағаннан кейін бағдарламада оператордың басымдылық талдаушысы іске қосылуы керек.) Raku жылдамдық пен динамика арасындағы тепе-теңдікті қамтамасыз ету үшін екі рекурсивті түсу талдаушысының арасына оператордың басымдылық талдаушысын орналастырады. GCC-нің C және C++ талдаушылары, қолмен кодталған рекурсивті түсу талдаушылары, арифметикалық өрнектерді жылдам тексеруге мүмкіндік беретін оператордың басымдылық талдаушысы арқылы жылдамдатылады. Оператордың басымдылық талдаушылары сондай-ақ, өрнектерді талдаудың рекурсивті түсу тәсілін айтарлықтай жылдамдату үшін компилятор құрастырушымен жасалған талдаушылардың құрамына енгізіледі.
Баламалы әдістер
Оператордың басымдық ережелерін қолданудың басқа да жолдары бар. Олардың бірі – бастапқы өрнектің ағашын құрып, содан кейін оған ағаш өзгерту ережелерін қолдану. Мұндай ағаштарды міндетті түрде ағаштар үшін дәстүрлі түрде қолданылатын дерек құрылымдарымен іске асырудың қажеті жоқ. Керісінше, таңбаларды кестелер сияқты жазық құрылымдарда сақтауға болады, сонымен бірге өңдеу керек элементтердің қандай ретпен өңделуін көрсететін басымдық тізімін құруға болады.