波兰表示法

✍ dations ◷ 2025-02-25 11:13:05 #波兰表示法

波兰表示法(Polish notation,或波兰记法),是一种逻辑、算术和代数表示方法,其特点是操作符置于操作数的前面,因此也称做前缀表示法。如果操作符的元数(arity)是固定的,则语法上不需要括号仍然能被无歧义地解析。波兰记法是波兰数学家扬·武卡谢维奇1920年代引入的,用于简化命题逻辑。

扬·武卡谢维奇本人提到:

阿隆佐·邱奇在他的经典著作《数理逻辑》中提出该表达方法是一种值得被关注的记法系统,甚至将它与阿弗烈·诺夫·怀海德和伯特兰·罗素在《数学原理》中的逻辑表达式相提并论。


表达“三加四”时,前缀记法写作“+ 3 4 ”,而不是“3 + 4”。在复杂的表达式中,操作符仍然在操作数的前面,但操作数可能是包含操作符的平凡表达式。例如,中缀运算式(5 - 6) * 7 ,在前缀表达式中可以表示为:

或省略括号:

由于简单的算术运算符都是二元的,该前缀表达式无需括号,且表述是无歧义的。在前面的例子里,中缀形式的括号是必需的,如果将括号移动到:

即:

则会改变整个表达式的值。而其正确的前缀形式是:

减法运算要等它的两个操作数(5;6和7的乘积)都完成时才会处理。在任何表示法中,最里面的表达式最先运算,而在波兰表达式中,决定“最里面”的是顺序而不是括号。

简单算术的前缀表达式主要是用于学术研究方面。与逆波兰表示法不同,前缀表达式基本没有在商业计算器中使用过,但是其体系经常在编译器构造的概念教学中首先使用。

LISP的S-表达式中广泛地使用了前缀记法,S-表达式中使用了括号是因为它的算术操作符有可变的元数(arity)。逆波兰表示法在许多基于堆栈的程序语言(如PostScript)中使用,以及是一些计算器(特别是惠普)的运算原理。

假定只有二元运算时,操作数的个数必然为操作符的个数加一,否则表达式就无意义。这样在计算更复杂,更长的表达式时,可以简单地忽略某些错误表达式,因此在使用前缀记法时必须小心仔细检查其表达意义。

前缀表达式的运算顺序很容易检测。需注意的是,当运算时,操作符是作用在第一个操作数上,特别是需注意不满足交换律的运算,如除法、减法。例如,下列式子:

 / 10 5 = 2  (前缀记法)

表示10/5,结果是2,而不是½。

基于堆栈的操作符由于其本身的特性,无需括号也很容易区分运算的顺序,因此大量使用波兰记法。运算波兰表达式时,无需记住运算的层次,只需要直接寻找第一个运算的操作符。以二元运算为例,从左至右读入表达式,遇到一个操作符后跟随两个操作数时,则计算之,然后将结果作为操作数替换这个操作符和两个操作数;重复此步骤,直至所有操作符处理完毕。因为在正确的前缀表达式中,操作数必然比操作符多一个,所以必然能找到一个操作符符合运算条件;而替换时,两个操作数和一个操作符替换为一个操作数,所以减少了各一个操作符和操作数,仍然可以迭代运算直至计算整个式子。多元运算也类似,遇到足够的操作数即产生运算,迭代直至完成。迭代结束的条件由表达式的正确性来保证。下面是一个例子,演示了每一步的运算顺序:

 - * / 15 - 7 + 1 1 3 + 2 + 1 1 = - * / 15 - 7   2   3 + 2 + 1 1 = - * / 15     5     3 + 2 + 1 1 = - *        3       3 + 2 + 1 1 = -          9         + 2 + 1 1 = -          9         + 2   2   = -          9         4         =                5

逻辑运算的波兰记法

下面的表格显示了命题逻辑的扬·武卡谢维奇记法,波兰记法中的某些字母代表特定的波兰语单词。普遍记法在1970和1980年代演变成下表的记法。

相关

  • 古印第安人古印第安人是指最初进入美洲并定居的人,时间在美洲大陆的更新世时期晚期的后冰川时期。“古印第安人”一词特指西半球的石器时代,不同于旧石器时代(Paleolithic)。有证据表明在
  • 增强剂再摄取强化剂 (Reuptake Enhancer , RE),有时也称作再摄取激活剂,是一种再摄取调节剂(英语:reuptake modulator)。可以增强膜上转运蛋白对神经递质的再摄取(英语:reuptake),使胞外神
  • 长沙雷锋纪念馆中国有4所雷锋纪念馆,它们是:
  • 约翰娜·万卡约翰娜·万卡(德语:Johanna Wanka)(1951年4月1日—),德国政治人物。2013年2月14日起,担任德国联邦教育及研究部部长一职。1951年,万卡生于萨克森州北萨克森县(当时属东德)。2001年,万卡
  • 刀剑神域《刀剑神域》(日语:ソードアート・オンライン,英语:),官方简称为“SAO”,是川原砾著作、abec绘制插画的日本轻小说作品,由电击文库于2009年4月出版发行。中文繁体版由台湾角川发行
  • 郭英声郭英声(英文名: QUO YING SHENG,1950年10月25日-),是一名生于台湾台北的台湾摄影师。他在1975年成为二战后第一位赴法国巴黎从事影像创作及工作的华人艺术家。2007年,与服装设计师
  • 约翰·斯皮德约翰·斯皮德(英语:John Speed;1542年-1629年)是英国的历史学家及地图制作家,其英国郡城地图作品在英国相当普及,经常可见于普通家户之中。斯皮德出生于柴郡(Cheshire)的法恩登(Farndo
  • 朱利奥·阿斯科利朱利奥·阿斯科利(意大利语:Giulio Ascoli,1843年1月20日-1896年7月12日)是一名意大利犹太人数学家。阿斯科利是比萨高等师范学校的学生,于1868年毕业。1872年,他成为米兰理工大学的代数与微积分教授。1879年起,他在Reale Istituto Tecnico Superiore担任数学教授。他也是隆巴多研究所的通讯成员之一。阿斯科利对实变函数的理论和傅立叶级数做出了贡献,例如他在1884年介绍等度连续,这个主题被认为是实变函数理论中的基本概念之一。1889年,意大利数学家切
  • 塞缪尔·雷伯恩塞缪尔·雷伯恩(英语:Samuel Taliaferro Rayburn,1882年1月6日-1961年11月16日),是美国民主党政治家,曾担任第43任众议院议长,同时他也是美国历史上任职时间最长的众议院议长。他从1913年至1961年去世为止一直作为德克萨斯州的民主党代表被选为众议院议员。他曾与林登·约翰逊一起拒绝签署《南方宣言》,并协助推动了《1957年民权法案(英语:Civil Rights Act of 1957)》和《1960年民权法案(英语:Civil Rights Act of 1960)
  • 卡拉什尼科夫卡拉什尼科夫(俄语:Калашников)可以指: