说文解字

领券网 https://www.cps3.cn/

  《说文解字》,简称《说文》,是由东汉经学家、文字学家许慎编著的语文工具书著作。《说文解字》是中国最早的系统分析汉字字形和考究字源的语文辞书,也是世界上很早的字典之一。

以上是百度百科的解释,前段时间刷知乎,看到了W雨辰的一篇介绍汉字造字法(指事,象形,形声,会意,转注,假借)的文章,其介绍简单有趣,深入浅出,读完之后深感汉字造字与程序设计、尤其是面向对象设计有共同之处,写一篇文章记录下思路,感兴趣的朋友可以过来探讨下。

说文解字的格式

打开词典网,搜索“老”字,弹出来的是这样的:

  其格式是这样的:某字,一张字图,X也,从XX

  比如:

  化:教行也。从匕从人,匕亦声。

  型:铸器之法也。从土刑声。

  改:更也。从攴己。

  一般来说,包括四个元素:字,图,也,从。(可能还有声)

解字

深入解字,挑一个“改”字来细究下:

更也。从攴己

改字的解释精简意赅:攴,观其形状,是一根小树枝的意思。攴己,就是用小树枝抽自己,为什么要用小树枝抽自己?是因为自己欠抽吗?

——因为[更也]。

换成面向对象的语言:

 class 更 {}
 class 攴{public 更 Do(object o);}class 改 : 攴 {} var o = new 改();var result = o.Do(new 己())

从攴,从就是继承的意思。从支己,就是继承(攴)并调用函数传参(己)的意思。


这里有歧义的地方是“更也”,这个“更”不能仅仅做返回值处理,其更多的是表达了一种差量元数据(diff merge's metadata),这个差量元数据体现出了目的性

——鞭策自己是为了更新,这是“改”的本义。

  继续往下展开:

 class B {}
 class C {}
 class A :B{public C do()      }

  翻译成说文解字:

A,C也,从B。

  又如:

 class B {}class C {}class D {}class A :B{public C do() {this.RaiseEvent(new D());}         }

  翻译成说文解字:

A,C也,从B,D声。

顺着这个解法,说文解字中有一系列精彩的发挥:

比如前面提到的“老”字:从人毛匕,拆开来看:从人、毛、匕(hua=化),按照知乎上w雨辰的解释:就是人的毛的化的意思,人的毛可看做头发,头发变化了!就是变白了!变白了就是老了!

这样就通过人——毛——匕的链条将“老”的意思解释清楚,这个令读者使用“意会”的方式get到字的方法,按照许老的说法:叫做《说文解字》。

换成面向对象的语言:

 class 人{public object 毛 { get; set; }  } var ren = new 人();ren.毛 = 匕;

  以程序的角度来看,毛是人的一个属性,匕是毛的当前状态值。相当于

 {人,毛,匕} => 老

  这种把多级的信息集压缩到一个平面上,使其变成一个字,这是汉字的一个造字原理。其展开方式来自于读者的意会:造字时将立体压缩成平面,理解时在读者脑子中将平面还原成立体

象形,指事,形声,会意,转注,假借

说文解字提出了六大模式(设计原则):象形,指事,形声,会意,转注,假借,其统称为六书。

用面向对象的语言寻找下对应关系:

一、象形:是最基础的一种构造,抽象出对象。

 object o = new object();

二、指事:指事。用来特指,好比电影中的特写镜头,特指出来令人一看即明。比如“本”是由“木”+“一”构成,这个“一”代表了树木的根部,用一点(横)指出来,提醒读者意会这里是“本”

在对象内部用“点”式指出某种变化,类似:

 o.RaiseEvent(); 

三、形声:把两个或多个对象放在一起来衍生,

“形”:定义了边界,定义了对象在环境中的外在。

“声”,类似波,指对象对外能发出的功能。

  Class A;Class B{A a;public void Do { a.do()}}

  按照汉字的解释,一个对象调用另一个对象的方法,就是借助此一对象让另一对象发出“声音”。汉字在这里的解释有些意思,声音无孔不入,一个对象的方法调用,会对系统内的所有对象产生影响,但这种影响从表面难以看出,因对象的表现是用形(彡=光照)来界定的。

  好比,一个人听了一句话,虽然表面上不动声色,可内心早已波澜汹涌。

四、会意:使用多重继承,将两个意象并列放在一起,令人意会。比如“信”是会意,把“人”和“言”放在一起,令人意会(……人和言放在一起是什么意思……信的意思吗?),意会出来的那个意思就差不多了。

  Class A;Class B;Class C:A,B

相比于程序设计极力避开多继承,避开菱形继承,汉字系统就是建立在多继承的基础之上,程序设计中is-a是主体,has-a是优选;汉字系统中has-a是主体,is-a是优选

五、转注:类似多态,又像函数调用链。老,从人毛匕——“人”,调用“毛”,再调用“匕”,这种调用更像是一种连接,如何把“人”、“毛”、“匕”用合理性的方式连接起来,让功能本义不变,边界旋转,寻找一种可以从一个字注入到下一个字的方法。

 class A{private B b;public void Do()[b.Do();    }    } class B{private C c;public void Do()[c.Do();    }    }    

六、假借

按照wu雨辰的解释:

比如“美”是指味道鲜美,但是人长得漂亮怎么形容呢?比如把人和美放在一起,那就把美假借为了“美丽”的意思了,跟“美”的本义“美味”意思不同,但是有没有必要再为了这层意思再造一个字形呢?其实没必要的,把“美”的字形拿过来假借一下,大家自然就明白什么意思了,“美”每变一个情景,就多一种假借,而且这个假借还让你看起来不动声色,后来才有了一字多义。

假借有种类型推断(匿名类型)的味道,将字还原到本义(将class还原成data、甚至还原成元数据metadata),再将其适配到其他字(类型)。

 struct Data {} class A{public Data ToDTO();  } class B{public static B FromDTO(Data data);}A a = new A();
 var data = a.ToDTO();
 var b = B.FromDTO(data); 

象形,指事,形声,会意,转注,假借,这六种设计方式叫做六书。

六书:一曰指事。指事者,视而可识,察而见意。上下是也。二曰象形,象形者,画成其物,随体诘诎,日月是也。三日形声。形声者,以事为名,取譬相成,江河是也。四日会意。会意者,比类合谊,以见指撝,武信是也,五日转注。转注者,建类一首,同意相受,考老是也。六日假借。假借者,本无其字,依声托事,令长是也。”

模型

总结一下:字=元数据(形)+职责(音)+实现(义)

其模型猜想如下图:

汉字是一种象形文字,其和拼音文字相比,保留了元数据(图)。当汉字无法理解(无法沟通)之时,可以还原到图上来理解,相比于拼音文字,它提供了一种回溯(Recompile)的可能性。

使用者随时可以瓦解一个字,来获得其原始“意图”。类似将玩具拆除后重新组装,这种重组的过程会极大增强人的理解。同理,这个瓦解字以获取智慧的过程,称之为《说文解字》。

这种编码中附带元信息的方式,在程序中叫做注释,在沟通里称为意图,在设计上看成背景,它通常与主信息呈现一种分离态。而在汉字系统中,形音义“三位一体”,只有一个字的形音义确定之后,它才会长久存在下去。

举个例子: 需求——它由需和求两个字组成。

需字:

求字

需字的图画:天在下雨,人被淋湿

求字的图画:一只伸长的手

需和求两个字组成词语(需求),其意象发生了交会,理解需求,即可以从词义入手(查词典),也可以回到元数据,直接从图上入手(说文解字):

需求从图上来看,出现了三个元素:雨、人、手

分别取反义:

1. 天不下雨,不叫需求。

2. 人没被淋湿,不叫需求。

3. 没伸出手,不叫需求。

将元数据解释(编译):

1. 市场环境没发生变化,不叫需求——(雨)。

2. 客户没伤到切身利益,不叫需求——(人)。

3. 客户没主动要求,不叫需求——(手)。

将此解释再次抽象:

1. 天时不对,不叫需求。

2. 地利不对,不叫需求。

3. 人和不对,不叫需求。

这是一种看图说话,是一种通过元数据理解,每个汉字都对应一张图,任何可以用汉字描述的概念(比如封装、继承、多态),都可以越过词义,直接从字图(元数据)释义,相对于词义,其字义往往携带了更精髓的最初的元信息。

如:

封装:=圭+(圭,诸侯的玉圭,代表责任;寸,恭恭敬敬手持,代表守责任)

装=衣+(衣,上身穿的叫衣,下身穿的叫裳;壮,大也)

封装要满足四个元素(圭、寸、衣、壮),看图说话,封装两字有这样的启示:

1. 要有责任。

2. 要守责任。

3. 封装只封上半身,要“下半身失踪”,如同并蒂莲一样,要有通过下半身(更底层存在)互通(交流变化)的可能性。

4. 有聚合性,其聚合性呈放大趋势。

相比于拼音文字,象形文字更大的保留了其元数据性,提供了一种重构的更大的可能性。

汉字系统

汉字的系统设计非常灵活,一个字既可以充当另一个字的基类,又可以充当另一个的方法、甚至可以是另一个字的元数据,其合理性来自于群体认证:

一个字(对象)不是合理才能应用,而是因为应用才产生合理

汉字的意会方式是一种元数据交流方式,意会的过程是一个先编译后执行的过程。如果把两个人比做两台电脑,在它们的网络通信中,不使用RPC调用,不使用Restful方法,而是在传输中直接传送元数据,接收方得到元数据,在其本地进行(无厘头)编译,以一种本地热重载(创建类型、JIT编译、解释执行)的方式完成沟通。

意会是一种“大数据”编译。

这种元数据通信方式可以充分的解耦,其有很高的扩展性,其本地编译的效果取决于“常识”、“经验”、“情感”,像是一种“大数据”编译,其注重的是不要丧失“不确定性”,不确定性是确定性的背景,它为确定性提供了生命力以及演化的可能性,它使得概念向本义收敛与边界扩张两个维度变化。

总结

本文讨论了《说文解字》与程序设计的关系,但牵强附会的地方很多,为了寻找对应关系,很多地方都是(无厘头)编译——开局一张图,内容全靠编。

 但伟大系统总有共通之处。

作为流传了几千年、上万年的文字系统,其内部有很深的智慧存在。程序设计,有很多地方可以向汉字系统学习。抛砖引玉,希望两者能够借鉴、互通、融合——希望风吹来的地方,都能有阳光晃耀。

作者:周永恒
出处:http://www.cnblogs.com/Zhouyongh

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

《说文解字》与程序设计相关推荐

  1. 全字库说文解字字体_整理了10款免费商用中文字体,超好用

    文章来源:logo设计视觉(ID:logoshijue) 字体不能随便用!大家应该经常有听到字体侵权索赔上几十上百万事吧!作为小小的设计师遇上了就倒霉啦!所以,我们要有足够版权意识,没事囤点免费可商用 ...

  2. 全字库说文解字字体_【180期】可商用字体大全,无版权纠纷!

    大家好我是万能的向前 今天向前为你精选了 可商用字体最全收集免费,无版权纠纷 每个设计高手都离不开百变的字体,但是,如果审美不到位字库不全,找不到合适的字体,领导.客户就相不中!那就有可能被降薪,糟心 ...

  3. 说文解字 —— 拆字

    1. 说文解字 美: 羊大为美:所以有肥美嘛 2. 世说新语 皇: 王上加白: 工人: 工人就是天: 3. 复杂词语 三星期,六点钟:三星期为二十一,六点钟为酉时的酉:加在一起就是醋: 4. 数字 7 ...

  4. 嘻嘻哈哈说文解字(讲)

    讲的左边是言,右边是井,我想,老祖宗造这个字的意思应该是:话是应该说,但不能说多,不能井边说,言空了就掉井里了(所谓言虚容易掉到井里面).但奈何我们的记忆总不好,只记住了左边的言,这不,你看我们天天都 ...

  5. java 词根_英语词根与单词的说文解字---词根示例1、第10页 st(at)

    英语词根与单词的说文解字---词根示例1.第10页 st(at) 一.总结 一句话总结: 站 state,establish,constitution 英 [ɪ'stæblɪʃ; e-]  美 [ɪˈ ...

  6. 读书笔记(四)---读《说文解字》的快乐点滴

    想读这本书的缘由在于,我经常背英语单词:为了更牢靠的记住英语单词,使用了某些例如按词根记住单词的技巧,突然想到自己对汉字也有很多是不认识的,学习一门外语花了这么大力气,为何学习母语反而不下工夫呢?于是 ...

  7. 曲刚英语说文解字全套下载

    买了曲刚英语说文解字全套已经学完了,因为都是电子录像,所以想转让一下,有兴趣的可以联系我,已经解决其他机器上无法播放的问题? 联系方式q.q:375501819 下载地址可以联系我~

  8. 快步英语说文解字颠覆中国传统英语教学模式

    原文出处 http://tinyurl.com/43637676 快步7号说文解字里面内容到底教了那些呢 中国近百年来沉闷压抑僵死的英语教学困境终于迎来颠覆性.震撼性突破,横空出世的曲刚英语语音大表. ...

  9. 说文解字 —— 汉字的构成及语义的变化

    猷(yóu):字从酋从犬,酋亦声.历史上曾为"犹"的异体字,本义为某种兽的名称,猴属.假借记录"谋略"."犹如"."犹豫" ...

最新文章

  1. AVA 8 :从永久区(PermGen)到元空间(Metaspace)
  2. 可重入锁和不可重入锁
  3. 【数据结构与算法】最小生成树--Kruskal算法 Prim算法
  4. KMP子字符串匹配算法学习笔记
  5. python post有随机字符串_Python 中的POST/GET包构建以及随机字符串的生成
  6. 信息学奥赛一本通(2047:【例5.16】过滤空格)
  7. java将复选框添加到表格_Element表格嵌入复选框以及单选框
  8. Elasticsearch IK分词器
  9. 初中数学知识点总结_初中数学函数知识点总结
  10. jmeter面试题及答案(jmeter接口自动化测试面试题)
  11. Mysql数据库恢复到指定时间点
  12. 刘毅5000词汇_不熟词汇整理_lesson_14 and part_4
  13. 微信小程序(沧海一笑)
  14. java文本反垃圾_java毕业设计_springboot框架的反垃圾邮件管理分析系统
  15. oj美元和人民币java_【牛客网OJ题】:人民币转换
  16. IPSEC对称解密以及非对称加密
  17. 2023 OneTool多平台助手程序源码 开心版
  18. 美团配送 二面(40min) Java后端 暑期实习面经
  19. Android加速度传感器原理
  20. 详解 gRPC 客户端长连接机制实现

热门文章

  1. SharePoint 2010 PowerShell 系列
  2. 双循环比赛队伍排列组合问题
  3. stc51与74LS164结合进行流水灯循环点亮
  4. 昆明理工大学大学研究生计算机专业排名,中国研究生教育分专业排行榜:081203计算机应用技术...
  5. 证明素数/质数有无限多个
  6. 普中51开发板利用1602LCD与1302时钟芯片来显示时间的程序
  7. 浅析class 、superclass、isMemberOfClass、isKindOfClass
  8. IDEA新建module不是java项目
  9. 视频编码 MPEG2 MPEG4 DIVX Xvid H264 VC1封装格式MKV AVI RMVB MPG TS解析
  10. 用postman导出excel文件