填充
为了实现自然语言编程,研究了公共命名空间。公共命名空间是实现自然语言编程不可或缺的一步。
公共命名空间中有许多列,表示许多方言;许多行,表示许多句子。这是一张巨大的表格。
在表格中进行查找,即可完成翻译工作。如,汉语的某个方言,老王的方言中有一个句子:
求[%整数集]的最小公倍数至[>%整数]。
其中,中括号表示参数,百分号表示类型,大于号表示输出,句号表示结束。
上述句子位于公共命名空间的某一列、某一行。在C语言那一列,同一行,是一段C语言代码,实现上述功能。
在x86机器语言那一列,同一行,是这段C语言代码编译后的样子。
人工地,以及用编译器自动地,填充公共命名空间。
然后就可以从老王的方言转换成x86机器语言,编译完成。
从汉语方言翻译出日语、阿拉伯语等,它们与上述方言位于同一行,可翻译,可共享。
注释
同时,在表格中有注释,注释可以发展成像博客那样的文章。程序员,以及所有使用计算机语言的人,都可以写文章、添加注释,以表达自己对计算机语言的期望。
在实现计算机语言的阶段,语言的制造者会看到这些期望,制作出更受欢迎的计算机语言。不出意外,这便是自然语言编程了。
一个可能的注释:
“整数集”与“整数集合”不同,集合中不能有重复元素,但集可以。集更像是序列,只不过打乱它的顺序也没关系。例:
整数集合:{2, 5, 6}
整数集:{2, 5, 5, 6}
序列:{2, 5}和{5, 2}不同
注释结束。
语言的制作者衡量这个注释,决定是否要把它添加到语言中来。
有可能注释是中文的,语言的制作者用的是意大利语,通过人工智能可以翻译。
语言的使用者、语言的制作者,可以在公共命名空间中聊天,借助翻译工具。
对别人的注释进行评价。如上述注释,可以修改成:
由于“整数集”常用做“整数集合”的简写,所以,把“集”叫做“收集”更好→整数收集、收集的整数。
注释结束。
另一个可能的修改:
整数集、整数结、整数序列、整数序集。
①集是集合的简称,其中的元素无序且不重复;
②结是个新的概念,无序且可重复;
③序列,有序且可重复;
④序集,有序且不可重复;
注释结束。
评价本身也是注释。
先有鸡还是先有蛋?
语言的使用者、语言的制作者,到底谁先谁后?经典编译原理中,没有制作者,哪来的使用者。在公共命名空间中,倒过来了,先是使用者,后是制作者。
本质上讲,制作者→使用者,自底向上;使用者→制作者,自顶向下。西方人和东方人,对地址的描述,就是由小到大、由大到小的。这两种策略都可行。
总结
填充“公共命名空间”的过程中可以添加注释,语言的制作者和使用者通过它进行沟通。
不管是自底向上、自顶向下,都是实现自然语言编程的策略。
人工智能需要海量的训练样本,填充公共命名空间的劳动量和它差不多。