
【计】 prefix expression
【计】 PR; prefix
【计】 E; expression
【化】 expression
前缀表达式(Prefix Expression),又称波兰表示法(Polish Notation),是一种数学表达式或逻辑表达式的书写方式,其核心特点是运算符置于操作数之前。在计算机科学中,这种表示法因其无需括号即可明确运算顺序的特性,常用于编译器和计算器的设计中。
中文术语:前缀表达式 / 波兰表示法
英文术语:Prefix Expression / Polish Notation
定义:运算符位于所有操作数之前的表达式结构。例如,加法运算 a + b
的前缀形式为 + a b
。
运算规则
表达式从左至右扫描,遇到运算符时,将其后的两个操作数(或子表达式结果)作为运算对象。例如:
* + 3 4 5
等价于 (3 + 4) * 5 = 35
/ * 6 3 2
等价于 (6 * 3) / 2 = 9
无歧义性
运算符的优先级和结合性通过位置直接体现,无需括号辅助解析。例如中缀表达式 3 + 4 5
需括号区分 (3 + 4) 5
或 3 + (4 5)
,而前缀形式 + 3 4 5
仅对应前者。
计算效率
适合栈(Stack)结构高效计算:
函数式编程语言
如 Lisp 和 Scheme 使用类似前缀的 S-表达式(例:(+ 3 (* 4 5))
),延续了运算符前置的逻辑。
编译器设计
源码解析阶段常将中缀表达式转换为前缀或后缀形式(逆波兰表示法),简化语法树生成。
计算机科学教材
Alfred Aho 等所著《编译原理》(Compilers: Principles, Techniques, and Tools)详细讨论表达式表示法对语法分析的影响(第2章)。
来源:Addison-Wesley Professional, 2006.
学术标准
IEEE 计算机协会发布的《软件工程知识体系指南》(SWEBOK)提及波兰表示法在算法设计中的应用。
来源:IEEE Computer Society, 2014.
编程语言文档
Lisp 语言规范(ANSI INCITS 226-1994)定义前缀式 S-表达式为基本语法结构。
来源:American National Standards Institute.
前缀表达式(Prefix Notation),又称波兰表示法(Polish Notation),是一种数学表达式的书写方式,其特点是运算符位于操作数之前。例如,中缀表达式 (3 + 4) 在前缀表达式中写作 (+ , 3 , 4)。
运算符前置
所有运算符均置于操作数左侧,如乘法表达式 (2 times (3 + 4)) 写作 (times , 2 , + , 3 , 4)。
无括号需求
运算符的优先级和结合性通过位置直接体现,无需括号辅助。例如,(times , + , 1 , 2 , 3) 表示 ((1 + 2) times 3),而非 (1 + (2 times 3))。
计算顺序明确
从右向左扫描表达式,遇到运算符时,直接对后续操作数进行运算。例如,计算 (+ , times , 2 , 3 , 4) 的步骤为:
(+ 1 2)
表示 (1 + 2))。类型 | 示例(表达式:(3 + 4 times 5)) | 特点 |
---|---|---|
前缀表达式 | (+ , 3 , times , 4 , 5) | 运算符前置,无括号 |
中缀表达式 | (3 + 4 times 5) | 需处理优先级和括号 |
后缀表达式 | (3 , 4 , 5 , times , +) | 运算符后置,无括号 |
例如,中缀表达式 ((A + B) times C) 转换步骤:
前缀表达式通过运算符前置和固定计算顺序简化了表达式解析,尤其适合计算机处理。尽管对人类阅读不够直观,但其无歧义性和高效性使其在特定领域广泛应用。
半身麻痹胞质接合变址方式表面上洼入超扫描收回初步预算垂帷隔顶部加料定量视觉副垂体膈上静脉鼓室结节环氯胍化学槽厕夹带物精密机械禁止动用的信托基金菊粉酶考闷安酸类脑积水卵孢菌素蒙受重大损失期末结帐软脑膜间的蠕动中枢三明治手肌急促颤搐双重否定律天赐的停车的