篇一:描述与标识
笔者的期望
对于已经习惯于现有编译体系的我们来说,或许是想象不到真正的中文编译究竟是何种模样。又或许是计算机专业人与包括笔者的我们来说,思考角度存在偏差,致使我们对中文编译的那些“中文编译是黑科技”,“文言编译”等天马行空的想象,看起来像是为难计算机专业人的发际线。
不过,对于中文编译,笔者始终期望能够在现代编译体系中占据一席之地。笔者也丝毫不怀疑,中文编译能不能实现,因为笔者始终坚信,编译语言采用英语只是因为它的发明者的母语恰好就是英语。
探讨中文编译设想的切入角度
就笔者个人感悟来说,平常交流写作中,往往关注语义方面,而不会太多关注语法方面,且还是笔者中学开始学习英语时才初次了解语法这个概念。所以笔者选择从语义作为切入点,就此探讨中文编译未来的可能模样。另外,笔者对于语法的认知是,语法是对语言应用的总结归纳,因此,笔者选择语义作为切入点,就此探讨语义推导出语法的可能。
描述
什么是描述,先看例子:
桌面上有个苹果,这时,你是直接观察者,你的朋友问你,你看到了什么,你回答说,“桌面上有个苹果”,这句话就是对你看到的场景的描述。
从上面的例子可以看出,观察目标,我们用 a a a 来表示,你朋友限定的观察方式“看”,我们用 f f f 来表示,描述,我们用 b b b 来表示。现在,我们可以将三者的关系为: b = f ( a ) b=f(a) b=f(a) ,读作对于观察方式 f f f, b b b 为 a a a 的描述。
这时,你观察到苹果被移动了一下,描述跟着改变,“桌面上有个苹果,它被移动了一下”。描述改变了,因此我们用 c c c 来表示。观察方式不变,观察目标不变,而观察目标的状态变了,因此,我们用 a ′ a' a′ 来表示状态变化,那么三者关系表示为: c = f ( a ′ ) c=f(a') c=f(a′)
进一步思考,例子中观察目标的状态变化是 a a a 到 a ′ a' a′ ,而描述从 b b b 到 c c c ,这个过程我们可以表示为: b → c = f ( a → a ′ ) b \rightarrow c = f(a\rightarrow a') b→c=f(a→a′)
接着思考例子,作为直接观察者的你观察到的是一个场景,而你的朋友问你,“桌面是什么颜色,苹果是什么品种”。如果要回答这个问题,你需要对观察的场景进行解构描述,即,场景由什么组成。在例子中,我们看到,场景是由“桌面”,“苹果”组成,我们分别用 d d d 和 e e e 来表示。那么,对于观察方式 f f f ,描述可以表示为: { d , e } = f ( a ) \{d,e\} = f(a) {d,e}=f(a) 。而例子中,两个物体又具有空间关系,进一步可以表示为: d e = f ( a ) de =f(a) de=f(a)。假设,这是苹果没有被移动,那么可以得到: b = d e b=de b=de,其中 d e de de 表示两个物体的任意空间组合共同描述。
现在,我们接着回答问题“桌面是什么颜色,苹果是什么品种”。桌面颜色我们可以直接看到,即观察方式不变,而苹果什么品种直接看是看不到的,即观察方式有所改变,用 m m m 来表示。若将观察目标变为苹果,那么描述可以表示为: g = f m ( e ) g=fm(e) g=fm(e) 。其中 f m fm fm 表示两个观察方式。
接着将观察目标变为桌面,观察方式没有变,但是是由“颜色”还有“位置”共同描述桌面,即桌面解构为两个属性。这时,我们可以用刚才解构场景的方法,解构描述桌面。桌面的“颜色”用 d c dc dc 来表示,桌面的“位置”用 d s ds ds 来表示,那么可以得到桌面的描述为: { d c , d s } = f ( d ) \{dc,ds\}=f(d) {dc,ds}=f(d)
现在,通过例子可以初步回答开头的问题,以及初步明确描述相关概念。定义:描述是一个系统对另一个系统的模拟。
描述空间
定义一:
对于任意观察方式
f
f
f ,观察目标
a
a
a 的描述表示为集合
K
K
K 时,称这个集合为
a
a
a 的描述空间。当描述为
K
K
K中任意个元素组成的任意有序序列时,称此描述为 描述向量
定义二:
对于任意观察方式
f
f
f ,描述系统
A
A
A对被描述系统
D
D
D 的所有描述构成的集合,称此集合为D关于A的描述空间,记作
A
′
=
f
(
D
)
A'=f(D)
A′=f(D)。
标识
在讲解这一段前,我首先要感谢我们的先辈们,是他们创造了文字,并留下一个庞大丰富的文字符号体系,让我们不再为标识事物而绞尽脑汁用何种事物来标识。
回到正题,什么是标识,最为简单的回答是分门别类,用易传中的描述讲,方以类聚,物以群分。
简单例子,分苹果,苹果在我们的观念中可以在不同场合中可以用一个符号a标识它是苹果。设现在有三个苹果,我们可以分别用a,a,a标识,因为在观念中它们是相同,而分给三个人后,还是三个苹果,但所属关系不一样了,所以,我们可以这样区分,i,y,h,代表三个人,每人的苹果就可以这样标识,ia,ya,ha。
由此我们可以引申出标识的定义,标识是用于区分事物的,让被标识事物具有与标识相同的描述的事物。这是一般的定义,我们观念中的标识一般是指我们所用的庞大复杂的文字符号系统。
定义的解释先放在一边,我们先想一个问题,在讨论描述时采用了一个描述事物的方法,那就是绘画,那么我们能不能画出世界上所有的事物?或许可以。在这里我们假设可以描绘出世界上所有事物,且存在观察手段f,使得它们不同,又存在观察手段m使得它们相同,那么它们它们能不能描述世界?
这个问题转化过来,就是有没有无限个符号,且它们互不相同,用于描述世界上所有事物。而这些符号又可作为标识,来标识事物的属性。
这个问题笔者不知道答案,而且笔者个人认为这个问题是没有意义的。不过,从这个问题我们可以反过来看,有限个不同的符号能不能描述世界上所有事物。这个问题,先辈们已经给出一部分答案,那就是我们的文字符号系统。
我们的文字符号系统是有限个不同符号组成的系统,为了应对复杂的描述,我们建立了以一维有序序列为基础的书写体系,这部分是标识的核心。
在忽略文字符号的自然语言语义后,可以将之单纯的用作标识符。在标识超出文字符号数量的事物时,采用一维序列方式进行标识,尤其发展出两套标识方法。
第一,循环递进标识法,对应现代数字符号系统,比如,十进制的
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
…
…
0,1,2,3,4,5,6,7,8,9,10,11……
0,1,2,3,4,5,6,7,8,9,10,11……
第二,结构标识法,对应现代代数系统以及自然语言。比如,
a
+
b
a+b
a+b,自然语言中的语法,就属于结构标识法。
关于这两个标识法,留待下一章讨论。