公共命名空间的例子

公共命名空间是一个四维空间,可以理解为一张巨大的表格。程序员在这里讨论计算机语言应该是什么样子的,定型以后再去实现。以下是公共命名空间的例子。
解方程[a*x+b=0]

这是一个句子,程序员A写下它,并期望有人能够实现它。在动手实现之前,应该多做一些讨论和修改。例如,给人看,人知道这是关于x的方程,可计算机不一定知道。而且解方程的结果放在哪里也没说明白。于是程序员B做出以下修改:
解关于[x]的方程[a*x+b=0],解为[x]

程序员C发现,既然是关于x的方程,那么解一定是放在x里,所以,可以进一步修改。
解关于[x]的方程[a*x+b=0]

程序员D指出,第二个中括号里的内容需要解析,不然的话它只是一串字符。这样一来,需要有"句子相关的解析器",把特定的解析器和特定的句子关联起来。

程序员E发现,如果是一元二次方程,会有2个解,所以x应该是一个序列。有时候方程无解,所以,这个句子应该能够处理无解的情况。

程序员F说:"如果a, b, x是矩阵,这句话便是解线性方程组"。的确,情况是复杂的。

然后,程序员G提问了:"这个句子的原型应该怎样声明呢?",这是个难题,因为方程是复杂的。或许公共命名空间中的讨论一般没有定论,对于容易产生定论的话题,它们早就讨论完了,用不着公共命名空间登场。

通过上述讨论,关于解方程的句子就基本定型了,然后,交给语言的制作者去实现语言。在公共命名空间中,程序员不能像传统语言那样,自定义函数名,而是使用已经讨论通过的句子。程序员自定义函数仅在局部使用,做为辅助函数。

现有的上千种计算机语言,是上千个"语言之父"的杰作,这些语言大同小异,却不相通。这是编译原理的局限性造成的。填充公共命名空间,先确定语言是什么样子的,再动手实现它。

公共命名空间和新编译原理,这是个新兴的研究方向。

本文通过一个简单的例子,讲述了公共命名空间的样子和使用方法。为读者抛砖引玉,期待能有更好的创意出现。

相关推荐
Da Da 泓2 小时前
LinkedList模拟实现
java·开发语言·数据结构·学习·算法
未知陨落2 小时前
LeetCode:68.寻找两个正序数组的中位数
算法·leetcode
努力学习的小廉4 小时前
我爱学算法之—— 模拟(下)
c++·算法
海琴烟Sunshine6 小时前
Leetcode 26. 删除有序数组中的重复项
java·算法·leetcode
PAK向日葵6 小时前
【算法导论】NMWQ 0913笔试题
算法·面试
PAK向日葵6 小时前
【算法导论】DJ 0830笔试题题解
算法·面试
PAK向日葵6 小时前
【算法导论】LXHY 0830 笔试题题解
算法·面试
麦麦麦造7 小时前
DeepSeek突然发布 V3.2-exp,长文本能力加强,价格进一步下探
算法
lingran__8 小时前
速通ACM省铜第十七天 赋源码(Racing)
c++·算法
MobotStone8 小时前
手把手教你玩转AI绘图
算法