仅仅从好玩程度考虑,做编译器或操作系统哪个更有趣味?
https://www.zhihu.com/question/22639407/answer/3150005844
从易于上手的角度看,做语言设计和实现更友好,而且相关技术可以用于很多大小方面。
依稀记得大约十年前看过某国外博文,说发现工作中很多任务都是在不同语言(包括数据格式等)之间转换,才发现学的编译技术如此有用。
刚在此答中:
严格依据「字源」和「造字本义」,汉字有多少个「基础部件」?5 赞同 · 5 评论回答
因为找到的字结构数据的格式是这样的:
瑕 ⿰𤣩叚
瑤 ⿰𤣩&JX2-7461;
为提取字型和各部分数据,开始用简单正则处理,但马上发现有这种嵌套的情况:
丽 ⿱一⿰⿵冂丶⿵冂丶
于是用上锤子—— rply 定制版(支持部分无空格语法)做分析器,下面是所有语法规则:
加上词法部分也不到五十行:https://gitee.com/zhishi/chinese_characters_words/blob/%E7%BB%9F%E8%AE%A1/src/chinese_characters_words/%E7%BB%93%E6%9E%84%E8%A7%A3%E6%9E%90.py
手写分析的话也许更简短,但个人感觉这样可读性挺好,也不用在递归调试上花费太多功夫。
顺便发个此项目的新悬赏任务:
DSL 添加功能:左边【某部分】,右边【某部分】 · Issue #I7P3Y8 · 吴烜/chinese_characters_words - Gitee.com
编译前端也还有很多空间,尤其与中文语法相关的。
建议先把需求说清楚。用语言实现并不一定最合适/经济。
另外,语言工具设计和实现并不需要绑定由一个人包办。随着语言工具研发的深入,这种分工是必然且自然的。
如果是中文语法尤其是无空格设计,不妨试试 rply定制版:
从“零”开始设计中文编程语言——SQL领域演示 13 赞同 · 13 评论文章
刚发的悬赏任务可以体验一下:
DSL 添加功能:左边【某部分】,右边【某部分】 · Issue #I7P3Y8 · 吴烜/chinese_characters_words - Gitee.com gitee.com/zhishi/chinese_characters_words/issues/I7P3Y8