关于中文编译的一些设想-3

class(类)在自然语言与编程语言中的表达

先看例子,你有一个苹果,你怎么去描述它呢?假设苹果有大小,颜色,位置。我们先看编程语言中如何表达:

class Apple{
public:
	int color=0;
	double volume=10;
	double site=0;
}
//...
int main(){
Apple a;
a.color ;
a.volume ;
a.site ;
}

从上面的代码可以看到,在Apple类中,有三个属性分别表示了苹果的大小,颜色和位置。在下方main函数中,使用了它们,分别是 a.color,a.volume,a.site。可以看出的是“ . . . ”将这三个序列从一个序列各自分成连个序列,一个属性,一个对象标识,说明它们是有结构的。

接下来我们看看自然语言对例子中苹果的描述:

苹果
颜色
大小
位置

在使用中,我们是这样描述的:苹果的颜色苹果的大小苹果的位置
可以看到,“的” 字将苹果与它的属性连接了起来。

接着,我们让“苹果”发生变化,看下面代码:

class Apple{
public:
	int color = 0;
	double volume = 10;
	double site = 0;
public:
	change_color(int color);
	change_volume(double volume);
	change_site(double site);
}

上面的代码中,我们在Apple类里面声明了三个成员函数,分别改变三个成员变量。根据上述代码,我们可以画出关系图,如下:

Apple
changeColor
color
changeVolume
volume
changeSite
site

从中我们可以看出,是一个一对多映射关系的树形结构。我们再来看自然语言的描述,苹果移动了一下苹果放黄了苹果被吃了一口,我们也画出一个关系图,如下:

苹果
移动
位置
颜色
被吃
大小

现在,我们用另一种描述方式:苹果发生了变化,*苹果的颜色(位置、大小)发生了变化。还是画出一个关系图,如下:

发生
发生
发生
发生
苹果
苹果自身
变化
位置
颜色
大小

从上面的关系图我们不难发现,苹果被描述或者标识成四个属性,在上一个关系图中需要三个动词的描述我们将之转化为一个动词。若我们用 a , s , c , v a,s,c,v a,s,c,v 分别标识关系图中四个属性,再用 f f f 标识 发生 y y y 标识 变化 ,那么我们可以表示为下面的关系:

aa
f
as
ac
av
y

这个关系图是不是接近数学上函数的定义,多对一的映射关系。由此,我们可以总结,不管是自然语言,还是编程语言对一个苹果进行精确的描述时,都会分离属性,搭配相应的动词与函数,将一对多的关系转化到一对一。到最后一个关系图时,已经将多对一转化到多对一,当到这一步时,我们已经能用数学中的函数工具进行问题处理了,在计算机代码中,到这一步就是在具体函数中对类应用了。

在此转化过程中,编程语言(以C++为例)采用 . :: 等符号分离,自然语言则采用 进行分离。由此,我们引申出一个概念,多项式

多项式

先看一下数学意义上的多项式: a 2 + 2 a b + b 2 a^2+2ab+b^2 a2+2ab+b2 我们都知道这个多项式,是和平方公式,公式中有加法,乘法,平方三个运算。如果详细展开这个公式,那么如下: a × a + 2 × a × b + b × b a\times a + 2\times a\times b + b\times b a×a+2×a×b+b×b
从上面公式我们知道, × \times ×, + + +它们在数学公式中或许有多种意义,但是不会变,而 a , b a,b a,b 作为代数项,它们是可以变的,把它们组合到一起,就是多项式。

引用数学概念上的多项式,定义:由多个不变的符号,以及可变的标识所组成的序列称为多项式或描述多项式

根据定义,我们可以称 苹果的位置Apple.volume 是多项式。

回到上面公式,我们知道,确定公式各项的值,就能确定多项式的值。同样,**…的…**左右两侧的项能够确定值,那么就能确定这个多项式描述的是什么了。对于其中的 ,定义:对于一个描述多项式,其各项的值称为语义

下一篇我们将讨论语义,也就是我们第一篇的切入点,也是关于中文编译的设想系列的核心内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不过日落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值