中文编程的路该怎么走?
说起来,我关注程序和编程,是从小学时姑姑家买了电脑,我把玩后开始感兴趣的,
然后是初中毕业,想找到一条生存路,开始研究程序世界,但遇上了互联网铺开和娱乐至上年代,
后面读了个大专学软件工程,但屁用没有,老师完全不教编程相关,竟然还教毛概,大数,大语等半点关系都没有的,
还要考试,我那会儿就开始反思中国的教育是不是出问题了,
之后,自然地,毕业即失业,一直打散工,直到16年开始关注中文编程,一直找了这么多年,
寻觅过很多道路,其中也遇到过一些道友,发现都无法精准命中中文编程的痛点,即中文编程的出路在哪里,
时至今日,中文编程尚处于萌芽状态,从吴涛的易语言到现在,可以看出,中文编程既没有pL理论,也没有建立出什么实际的程序生态和编程生态,更别提基于共识起草标准了,所以中文编程这个事业,还是一事无成的零蛋,
程序的本质就是,从零凭空构造一套系统,看起来脱离实际,其实它紧密围绕世界的实际逻辑建立,即策略、模式匹配、算法等概念描述的一个抽象对象,
我观中文编程的现状,得出一些肤浅的分析结论;
它从上到下(顶到底),或从下到上,都行不通,因为这些已经是西方软件工程建立了半个多世纪的壁垒,
其体系和生态已经非常庞大繁杂,所以现在入程序行业的人,一般都是加入他们,
这些人秉持的理念是打不过就加入,而非独立自主搞自己的,毕竟像倪光南和吴涛这样有骨梁的在一个群体里始终是少数,
所谓从上到下,就是从应用层到指令系统,应用层就是生态,生态每天都在产生海量的库,
无论是汉化它还是使用它(这个使用是指生产者实施者)都是南辕北辙,只会疲于奔命地跟着西方的屁股跑,
而从下到上,看似简单,实则壁垒高到难以想象,西方人在最基本的东西里穿插了技术墙,
比如指令系统,就是指令集,我用的是x86,我想找到指令的机器码,我发现它根本没有固定的0101构成的机器指令,
因为它是CISC,所以它的指令是动态编码的,我想做一个x86的汇编器,我需要看懂它的说明书,
还要会一门静态编译性语言,而这两样对一个非专业的普通人来说就像天书,
其说明书,要看英文是基本的,其技术性的词汇和描述,和带有文法陷阱(俚语,惯用口语)的句子和缩写,
是壁垒和技术墙的双重压制,而静态编译性的语言一样有这个问题,更别提破解静态编译语言的编译器,
比登天还难,这一系列就像三体里的质子,从最基本的规则中锁死我们在这个领域的发展,
拟人比喻就是,削掉你的头和四肢和五脏六腑,只留十个手指和血管连着,让你只用手指为西方的软件工程生态添砖加瓦,
通过血管输送养分供养西方程序生态,现在加入的那帮人就在干这个事,并且他们还有优越感,
当然,现在有开源的RISC-V可供选择,它有固定的0101机器指令,写汇编器应该没那么难了,
但我没有基于它的CpU和整机,所以我无从下手,
经过上述分析,和平日里的反思,我找到的路就是虚拟机这条路,
虚拟机指语言虚拟机,不局限于某种指令系统和处理器架构,也不局限于某个操作系统,
因为它是一台虚拟的机器,是对图灵机或冯氏结构的虚拟化,用软件和程序来模拟,
当前只有这条路可走,它能破解从上到下还是从下到上的问题,jvm字节码和llvm中间码就是这种产物,
我以前没注意到这条路的可行性,但现在我发现虚拟化才是中文编程真正可以实现和走的路,
有人要说龙芯,但龙芯的指令系统和处理器架构,一是继承自西方体系的指令集和设计理论,二是为了接西方体系的轨,
而非真正的独立自主,它没有真正意义上的从零的汇编器和编译器,大家可以去看它的官方文档,
龙芯的目的还是为了供养西方软件生态,因为他们想从西方生态里分一杯羹,所以龙芯从源头的路就是歪的,
所以中文编程想要拥有自己的硬件生态体系,那就必须要完全从零设计指令系统,和由此而生的pL理论和汇编标准,
以及,适应这套指令系统的电路,IC生态,等等,
当然,我们现在热衷中文编程的道友,不奢望硬件生态,因为那实在可望不可即,
所以我们只能搞搞中文编程的软件生态体系,通过语言虚拟机来构造中文汉字程序生态这个上层建筑,
经过这么多年的热衷探索,中文编码标准在冯氏结构里是一个全面性被打压的问题,
冯氏结构有5大部件,分别是[运算器、存储器、控制器、输入、输出],这不单单是硬件电路使用了这些概念,
冯氏结构是一种理论,它在软件和程序里也是可以应用的,编程语言的功能清单里,不但包含了基于5大概念构造的功能,
比如数组,变量,流程控制. 还有基于这基本概念构造的复合功能,比如结构体,函数.
还有文件系统也有5大概念的本质,输入法也一样,例子太多不列举,
如果光是寻觅编程语言的编码,其实是南辕北辙,真正应该研究的是冯氏结构概念实例化后的编码和指令系统的字符编码,
方能深入破解中文编程编码标准的根源,
中文字符编码不单单只局限于输入和输出,大家明白吧,
基于上述分析,若要搞中文编程的语言虚拟机,第一步是设计基于中文汉字的指令系统,
用汉化的方式写虚拟机是基本要求,即标识符就得是中文汉字,设计虚拟机所用的冯氏结构概念得用中文汉字编码,
这样就可以从源头用中文汉字封装冯氏结构概念为基本编程组件,
那么用这样的语言虚拟机建立的上层建筑,比如汇编器,pL理论,编译器,输入法等等基础设施,才能完全是基于中文汉字的,
也就不会遇到编码问题,
说一个歧视性的问题,UTF8是对Unicode的再编码,当它编码汉字的时候,大多是用2-3个字节来存储汉字的,
每个字节8位二进制(一个字节),也就是说存储一个汉字要有16位-24位二进制,大家考虑下,16位甚至24位二进制可以代表多少个状态了?
常用汉字3000-5000个,也就是说最多只需5000个状态,所以要存储汉字12位-16位是完全够了,
甚至康熙字典都能全部存储下来,而UTF8是为了适应拉丁字母的排位而设计的,字母在UTF8码表里享有第一优先级,
字母大多是用8位二进制编码的(一个字节),所以UTF8编码算法是未满256个状态之前存储字母,超过256个状态的字符,
就用16位甚至24位二进制来编码存储,故意增高非拉丁字符的存储成本,让非欧罗巴文明的种族觉得自己使用的文字低人一等,
而UTF8是现在软件程序互联网打印机反正就是信息传输、存储、处理的事实标准,
大家仔细想吧,为啥不是UTF16流行或干脆Unicode本身流行?为啥非得定义8位二进制 = 一个字节?一切都是为了西方优先.
要搞中文编程,其实首先应该解决中文编码的问题,然而却没有任何人反思这一点,
当然,UTF8也是可以用,就是成本和代价高了亿点,自然就由大家来全体承担了,
还有一个,pL理论不是非得用龙书虎书鲸书那一套编译理论,并且,除了图灵机以外还有一大把计算理论,
但是当你打开搜索编译器相关的时候,出来的几乎全都是"词法分析""语法分析""代码生成"那一套,为啥?
因为被降维打击了呀,因为"加入他们"的那部分人在十多年前就开始带节奏了,典型的比如轮子哥,
中文编程的生路难走至极,但走出来就可以日月换,
生态的问题不是一个人能解决的,打破封印需要破解者,而非归顺者,
相关文章