如果给你100万人

这篇博客探讨了如果动员100万人来创建一种新型计算机语言的可能性,提出了四维Unicode的概念和新编译原理的研究。四维Unicode旨在涵盖多种语言和表达方式,而新编译原理则解决了大规模文法产生式带来的挑战,包括编译型、解释型、递进型、合作型和非产生式类型的编译方法。这些创新为构建语言提供了新的思路。
摘要由CSDN通过智能技术生成

如果秦始皇再世,要修长城,皇帝派你去修,并给你100万人,你该怎么修?

首先,你肯定想到了“并行处理”,即多人同时劳动。否则,会导致大量人员处于等待状态。
然后,你需要有张地图,规划一下线路,否则,许多段长城难以连接成一个。
之后,你需要有能工巧匠,这100万人都会在平地上砌墙,但不是都会在起伏的山顶砌墙。
最后,应该有交流,普通的墙和敌台的结构不同,让工人们进行交流,产生最好的方案。

言归正传,都21世纪了,我们不需要动员100万人修长城了。但是我们可不可以动员100万人制作一门计算机语言呢?假设可以,如果你认为不可以,就没必要阅读下文。

应该首先确定语言是什么样子的,然后再着手制作语言,就像上文中的地图一样。如何制作这么一张地图?可以参考字符集,最成功的字符集当属unicode,它包含了全世界几乎所有字符。
以句子为单位理解源代码,一方面,需要像unicode那样的,包含所有句子的集合;另一方面,需要编译原理支持。简单来说,就是新unicode和新编译原理。
unicode是一维的,从编码0到最大。而新unicode应该是四维的,分成(句子,方言,同位素,冗余项)。
如何在二维的电脑屏幕上展示四维的空间?有一个办法!首先展示两个维度,(句子,方言),就像电子表格一样,每一行表示一个句子,每一列表示一门方言。句子类似于
print “hello world”
显示 “世界你好”
而方言是包括汉语、英语、C语言、python在内的全部。

选择电子表格中的某个单元格,打开,又是一个电子表格,展示其余的两个维度,(同位素,冗余项)。每一行是一个同位素,每一列是一个冗余项。
同位素的概念来自于化学,指含义相似却又略有不同。如print语句加不加换行符,就是一个典型的同位素。
冗余项指的是意思完全相同的表述方式。如打印、显示;
以上这个四维的新unicode相当于地图,为我们修长城指明了方向。

你要动员100万工匠中的一部分人,研究新编译原理。因为要以句子为单位,按传统编译原理来说,就是每个句子都有对应的文法产生式。预计有100万个句子(因为unicode有100万个字符),那么,文法产生式的数量就能达到约200万条了。按照经典编译原理的LR(1)方法,分析表会异常大。
所以,需要研究新编译原理。

编译原理可以分为编译型、解释型、递进型、合作型和非产生式类型。
① 编译型编译原理,即经典编译原理,它把所有文法产生式生成一个可执行文件。
② 解释型编译原理,不产生可执行文件,而是看着文法产生式和源代码,进行分析的方法。
③ 递进型编译原理,和经典编译原理很像,只不过它并非一次产生整个的DFA,就是LR(1)要用的那个DFA。它一次产生几个节点,有移进动作就产生新的节点;有规约动作就回退几个节点。这样做可以省内存,避免把200万个产生式一股脑地放进内存里。
④ 合作型编译原理,把单词、运算符等看作有生命的智能体,通过一些规则,实现语法分析。
⑤.1 非产生式类型的编译原理,按照“先乘除后加减”,“括号要配对”等规则进行语法分析。它摆脱了文法产生式,有点像给小学生上课。
⑤.2 或者是基于集合论,从简单集合出发,运用集合间运算,组织出更大规模、直至语言规模的集合。集合有一个遍历函数,可以(仅是可能)列出一门语言的全部句子!

有了上述两大利器,你就能统领100万人,开发一门计算机语言。秦始皇从墓地里爬出来,紧握住你的双手,说:“同志,你可太强了!”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值