公共命名空间和unicode,它们两个有关联,在电脑上显示字符,要分两步走:字符集和字体。在互联网诞生之前,各国都是使用自己的字符集,后来,出现了unicode,这是包含所有字符的字符集。不管是unicode还是gb2312,它们都是字符集,没有字符集,电脑似乎就无法显示字符了?
在学习计算机底层原理时,老师讲:“不要被二进制吓到,二进制可以转换成十进制,也可以通过字符集和指令集,转化为文本和程序。”
没有指令集,电脑显然不能工作,那么,没有字符集,电脑也不能工作。字符集和指令集都是集合,它提供了符号、指令到数字的映射关系。
现在确定了,没有XX到数字的映射关系,电脑将不能工作,这一映射是通过“查表”完成的。字符集和指令集都是一张两列多行的表,A列是数字,B列是字符或指令。
公共命名空间也是集合,它里边存储的是源代码中的句子,是句子的集合。不同之处在于,字符集和指令集是一维的,而公共命名空间是四维的。
这四个维度是:句子、方言、同位素、冗余项。
之前的文章已经详细描述过了,这里仅简单说一说。每一行是一个句子,每一列是一种方言,句子以hello world程序为例。所有方言的hello world程序都在同一行里,不同的列表示不同的方言。方言可以是C、C++、java、汉语、日语、英语等。鼓励用自然语言描述。
建设公共命名空间的过程,是字面上的,不涉及代码的编写与调试,那是分“两步走”计划的第二步,现在仅讨论第一步。不仅仅是语言之父、程序员,所有在未来要使用电脑的人,都可以参与进来,为设计优秀的计算机语言做贡献。
正如unicode和UTF-8、UTF-16的关系,后者是前者的实现。公共命名空间理论上是个四维的表格,在实践上是什么样子,就又是一个课题了。在此作者抛砖引玉,说一说设想中的公共命名空间的实现方式。
实数轴,是个数学概念,与小数一一对应。用两个整数表示一个小数,包括小数点左边是一个整数、小数点右边是另一个整数。在实数轴上,距离很近的两个点之间,仍然有无穷多个点。
在计算机中,也可以用两个整数表示一个小数。一个小数表示一个维度,四个维度就需要八个整数。(注:在这里用的是“小数”而不是“实数”)
用8个整数“定位”公共命名空间中的一个句子。这么设计是为了以后可以扩充。你有更好的设计吗?欢迎留言、评论。
上一篇:【夜读】一个人最积极的生活状态