วิธีเขียนนิพจน์เลขคณิตเรียกว่าสัญกรณ์ นิพจน์เลขคณิตสามารถเขียนได้สามรูปแบบที่แตกต่างกันแต่เทียบเท่า กล่าวคือ โดยไม่ต้องเปลี่ยนสาระสำคัญหรือผลลัพธ์ของนิพจน์ สัญกรณ์เหล่านี้คือ –
-
สารบัญ
-
คำนำหน้า
-
Postfix
สัญกรณ์ infix เป็นสัญกรณ์ปกติที่เราใช้ในขณะที่เขียนนิพจน์ทางคณิตศาสตร์ที่แตกต่างกัน สัญกรณ์ Prefix และ Postfix ต่างกันมาก
สัญกรณ์คำนำหน้า
ในสัญกรณ์นี้ โอเปอเรเตอร์คือนำหน้า ตัวถูกดำเนินการ เช่น ตัวถูกดำเนินการเขียนก่อนตัวถูกดำเนินการ ตัวอย่างเช่น +ab . ซึ่งเทียบเท่ากับสัญกรณ์ infix a + b . สัญกรณ์คำนำหน้าเรียกอีกอย่างว่า สัญกรณ์โปแลนด์ .
สัญกรณ์หลังการแก้ไข
รูปแบบสัญกรณ์นี้เรียกว่า Reversed Polish Notation . ในรูปแบบสัญกรณ์นี้ โอเปอเรเตอร์คือ postfixed ไปยังตัวถูกดำเนินการ เช่น ตัวดำเนินการถูกเขียนตามหลังตัวถูกดำเนินการ ตัวอย่างเช่น ab+ . ซึ่งเทียบเท่ากับสัญกรณ์ infix a + b .
ตัวอย่าง
ไม่มีนิพจน์ | Infix Notation | สัญลักษณ์นำหน้า | สัญกรณ์ Postfix |
1 | a + b | + a b | a b + |
2 | (a + b) * c | * + a bc | a b + c * |
3 | a * (b + c) | * a + bc | a bc + * |
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 - |
การแยกวิเคราะห์นิพจน์
ดังที่เราได้กล่าวไปแล้ว ไม่ใช่วิธีที่มีประสิทธิภาพมากในการออกแบบอัลกอริธึมหรือโปรแกรมเพื่อแยกวิเคราะห์สัญกรณ์ infix แต่ก่อนอื่น สัญกรณ์ infix เหล่านี้จะถูกแปลงเป็น postfix หรือ prefix notation จากนั้นจึงคำนวณ
ในการแยกวิเคราะห์นิพจน์ทางคณิตศาสตร์ เราจำเป็นต้องดูแลลำดับความสำคัญของตัวดำเนินการและการเชื่อมโยงด้วย
ความสำคัญ
เมื่อตัวถูกดำเนินการอยู่ระหว่างตัวดำเนินการที่แตกต่างกันสองตัว ซึ่งตัวดำเนินการใดจะรับตัวถูกดำเนินการก่อน จะถูกตัดสินโดยลำดับความสำคัญของตัวดำเนินการมากกว่าตัวดำเนินการอื่นๆ ตัวอย่างเช่น –
𝑎 + 𝑏 ∗ 𝑐 → 𝑎 + (𝑏 ∗ 𝑐)
เนื่องจากการดำเนินการคูณมีความสำคัญมากกว่าการบวก ดังนั้น b * c จะถูกประเมินก่อน ตารางลำดับความสำคัญของตัวดำเนินการจะมีให้ในภายหลัง