本文简单探讨一下碳基生物与硅基生物的语言的语序。
概念
语言的主干分主语(subject)、谓词(verb)、宾语(object),其顺序根据排列组合,有 SOV(43.3%,所占语言比例,下同)、SVO(40.3%)、VSO(9.5%)、VOS(3.3%)、OVS(0.7%)、OSV(0.3%)、不固定(2.3%)七种1。世界上大部分语言都属于前三种。
而在计算机的数据结构与算法里,表达式也分前缀表达式、中缀表达式、后缀表达式。但是奇怪的是,即使对于不是 SVO 的母语者而言,其数学也普遍采用中缀表达式。
对比
中缀表达式
这个大概是最常见的,即: 操作数 操作符 操作数,比如简单的: 3 + 4,复杂的: (1 + (3 * 4) / 6 ) - 5,需要用括号调整运算优先级。
自然语言中的汉语(乌鸦喝水。)、英语也是这个结构。
对于大多数面向对象的语言,谓词可以认为是某个对象的一个方法(method),宾语则是其参数。如 Java: Raven.drink(Water)。
前缀表达式
也叫波兰表示法,其特点是操作符置于操作数的前面,即: 操作符 操作数 操作数。比如简单的: + 3 4,复杂的: - + 1 / * 3 4 6 5。
自然语言中的阿拉伯语(يشرب غراب الماء)、希伯来语也是这个结构。
有些语言采用的也是前缀表达,如 lisp: (drink Raven Water)。
后缀表达式
也叫逆波兰表示法,所有操作符置于操作数的后面,即: 操作数 操作数 操作符。比如简单的: 3 4 +,复杂的: 1 3 4 * 6 / + 5 -。
自然语言中的日语(カラスは水を飲む。)、韩语也是这个结构。
也要语言采用后缀表达,如 forth: : Raven Water drink;。
