编译原理例题
写出算术表达式: A + B ∗ ( C − D ) + E / ( C − D ) ↑ N A+B*(C-D)+E/(C-D)↑N A+B∗(C−D)+E/(C−D)↑N(↑指乘方)
- (1)四元式
(2)三元式
(3)间接三元式
(4)逆波兰记号
解:
- 四元式:
( 1 ) ( − , C , D , t 1 ) (1)\ (-,\ C,\ D,\ t_1) (1) (−, C, D, t1)
( 2 ) ( ∗ , B , t 1 , t 2 ) (2)\ (*,\ B,\ t_1,\ t_2) (2) (∗, B, t1, t2)
( 3 ) ( + , A , t 2 , t 3 ) (3)\ (+,\ A,\ t_2,\ t_3) (3) (+, A, t2, t3)
( 4 ) ( − , C , D , t 4 ) (4)\ (-,\ C,\ D,\ t_4) (4) (−, C, D, t4)
( 5 ) ( ↑ , t 4 , N , t 5 ) (5)\ (↑,\ t_4,\ N,\ t_5) (5) (↑, t4, N, t5)
( 6 ) ( / , E , t 5 , t 6 ) (6)\ (/,\ E,\ t_5,\ t_6) (6) (/, E, t5, t6)
( 7 ) ( + , t 3 , t 6 , t 7 ) (7)\ (+,\ t_3,\ t_6,\ t_7) (7) (+, t3, t6, t7)- 三元式:
( 1 ) ( − , C , D ) (1)\ (-,\ C,\ D) (1) (−, C, D)
( 2 ) ( ∗ , B , ( 1 ) ) (2)\ (*,\ B,\ (1)) (2) (∗, B, (1))
( 3 ) ( + , A , ( 2 ) ) (3)\ (+,\ A,\ (2)) (3) (+, A, (2))
( 4 ) ( − , C , D ) (4)\ (-,\ C,\ D) (4) (−, C, D)
( 5 ) ( ↑ , ( 4 ) , N ) (5)\ (↑,\ (4),\ N) (5) (↑, (4), N)
( 6 ) ( / , E , ( 5 ) ) (6)\ (/,\ E,\ (5)) (6) (/, E, (5))
( 7 ) ( + , ( 3 ) , ( 6 ) ) (7)\ (+,\ (3),\ (6)) (7) (+, (3), (6))- 间接三元式
( 1 ) ( − , C , D ) (1)\ (-,\ C,\ D) (1) (−, C, D)
( 2 ) ( ∗ , B , ( 1 ) ) (2)\ (*,\ B,\ (1)) (2) (∗, B, (1))
( 3 ) ( + , A , ( 2 ) ) (3)\ (+,\ A,\ (2)) (3) (+, A, (2))
( 4 ) ( ↑ , ( 1 ) , N ) (4)\ (↑,\ (1),\ N) (4) (↑, (1), N)
( 5 ) ( / , E , ( 4 ) ) (5)\ (/,\ E,\ (4)) (5) (/, E, (4))
( 6 ) ( + , ( 3 ) , ( 5 ) ) (6)\ (+,\ (3),\ (5)) (6) (+, (3), (5))- 逆波兰记号
A B C D − ∗ + E C D − N ↑ / + ABCD-*+ECD-N↑/+ ABCD−∗+ECD−N↑/+