अंकगणितीय व्यंजक लिखने के तरीके को संकेतन (notation) के रूप में जाना जाता है। एक अंकगणितीय व्यंजक को तीन अलग-अलग लेकिन समतुल्य संकेतनों में लिखा जा सकता है, यानी व्यंजक के सार या आउटपुट को बदले बिना। ये संकेतन हैं:
मध्यसर्ग (Infix)
उपसर्ग (Prefix)
पश्चसर्ग (Postfix)
मध्यसर्ग संकेतन सामान्य संकेतन हैं, जिनका उपयोग हम विभिन्न गणितीय व्यंजक लिखते समय करते हैं। उपसर्ग और पश्चसर्ग संकेतन काफी अलग हैं।
उपसर्ग संकेतन (Prefix Notation)
इस संकेतन में, ऑपरेटर ऑपरेंड से पूर्व-निर्धारित (prefixed) होता है, यानी ऑपरेटर ऑपरेंड से पहले लिखा जाता है। उदाहरण के लिए, +ab। यह इसके मध्यसर्ग संकेतन a + b के समतुल्य है। उपसर्ग संकेतन को पोलिश संकेतन (Polish Notation) के रूप में भी जाना जाता है।
पश्चसर्ग संकेतन (Postfix Notation)
इस संकेतन शैली को रिवर्स पोलिश संकेतन (Reversed Polish Notation) के रूप में जाना जाता है। इस संकेतन शैली में, ऑपरेटर ऑपरेंड के लिए पश्च-निर्धारित (postfixed) होता है यानी ऑपरेटर ऑपरेंड के बाद लिखा जाता है। उदाहरण के लिए, ab+। यह इसके मध्यसर्ग संकेतन a + b के समतुल्य है।
उदाहरण
| व्यंजक संख्या | मध्यसर्ग संकेतन | उपसर्ग संकेतन | पश्चसर्ग संकेतन |
| 1 | a + b | + a b | a b + |
| 2 | (a + b) * c | * + a b c | a b + c * |
| 3 | a * (b + c) | * a + b c | a b c + * |
| 4 | a / b + c / d | + / a b / c d | a b / c d / + |
| 5 | (a + b) * (c + d) | * + a b + c d | a b + c d + * |
| 6 | ((a + b) * c) - d | - * + a b c d | a b + c * d - |
व्यंजक पार्स करना (Parsing Expression)
जैसा कि हमने चर्चा की, मध्यसर्ग संकेतन को पार्स करने के लिए एक एल्गोरिदम या प्रोग्राम डिजाइन करना बहुत कुशल तरीका नहीं है। इसके बजाय, इन मध्यसर्ग संकेतनों को पहले पश्चसर्ग या उपसर्ग संकेतन में परिवर्तित किया जाता है और फिर गणना की जाती है।
किसी भी अंकगणितीय व्यंजक को पार्स करने के लिए, हमें ऑपरेटर प्राथमिकता (precedence) और साहचर्य (associativity) का भी ध्यान रखना होगा।
प्राथमिकता (Precedence)
जब एक ऑपरेंड दो अलग-अलग ऑपरेटरों के बीच होता है, तो कौन सा ऑपरेटर पहले ऑपरेंड लेगा, यह एक ऑपरेटर की दूसरों पर प्राथमिकता द्वारा तय किया जाता है। उदाहरण के लिए –
a + b * c → a + (b * c)
चूंकि गुणा संक्रिया की प्राथमिकता जोड़ पर है, b * c का मूल्यांकन पहले किया जाएगा। ऑपरेटर प्राथमिकता की एक तालिका बाद में प्रदान की गई है।