记录段言的开发过程

段言项目:duan - AtomGit | GitCode

段言是一门基于中文深层认知特性设计的编程语言,融合词句段篇层级、元数驱动解析、无空格分词等创新语法。

迭代生成开发文档

多轮迭代了开发文档,见:词句段篇编程语言-完整规范,请提提意见,看看当前市场流行的技术背景下,项目是否可行-CSDN博客

改进意见

根据意见继续改进:二、一致性检查:是否有内在矛盾? 2.1 决策1与决策4的协同 决策1说"单行不限动词数",决策4说"换行即语句结束,分号可写多句"。两者不矛盾,但需要明确:如果一行内用分号写了多句,是否还视为"单行句"? 我认为应视为多个句子的序列,而不是一个句。建议在规范中补充:分号分隔的多个语句,视为.....

学习先进经验

关于语法方面,学习一下这几个项目,让语法更加简洁、无歧义、中文化

项目名字 目录

言语言yan G:\dumategithub\newlisp

知行zhixing G:\zhixing

知行语言traeyan G:\traework\traeyan

言知yanzhi G:\yanzhi

心语xinyu G:\dumategithub\chineseprogram

墨言moyan G:\atomcode\atomyan

言律yanlv G:\dumategithub\yanlv

明道

Mingdao G:\dumategithub\langbyracket

翰语

Hanyu G:\opencode\hanyu

给咱们这个中文编程语言起个名字

命名方案

项目 内容
中文名 段言
英文名 Duan
寓意 用段落书写的编程语言
文件扩展名 .段 或 .duan

命名理由

段言(Duan)的优势:

  • ✅ 简洁:单音节,易读易记
  • ✅ 国际范:类似Rust、Go、Lua等单音节语言
  • ✅ 核心概念:"段"是词句段篇的核心单元
  • ✅ 独特性:不与其他语言重名

开始开发

MVP实现:编写词法分析器、语法解析器

因为文档中已经写了项目名字等信息,所以Dumate贴心的在dumategithub目录创建了一个子目录duan,然后在duan这个目录进行项目开发工作,真的很智能(开发文档在"总结"这个子目录)。

选词法分析器

词法分析器、语法解析器,有什么现成的项目和库可以实现吗? 从头开始实现太不现实了!

Lark PLY / RPly Tatsu 等这些库都可以对我有很大的帮助。

ANTLR也很强大,你看看适合我们的情况吗? 还有ANTLR

最后决定让Dumate使用Lark

让Trae使用ANTLR

下一步:集成词法分析器到 Lark 语法解析器

下一步:扩展语法支持(条件语句、循环语句、段落定义)

一步到位

这些工作,一步步来: 优化与重构 - 代码结构优化、性能优化 功能扩展 - 添加更多语法特性(类、模块、异常处理等) 工具链 - 编译器 CLI、IDE 插件、调试器 文档与示例 - 编写完整的使用文档和示例代码

新建会话继续开发

把目录缓过来

这是正在开发的段言Duan中文编程项目,由Dumate和Trae共同完成,Trae的工作文件主要放置在antlrparser 子目录,一般情况下我们是并行开发,互相不影响的。

项目前期的一些讨论,文件放置在目录:G:\dumategithub\总结

在需要的时候可以去调阅。

现在进行Duan的开发,若要开发自举功能,你看我们现在Duan是否需要先补充一些什么功能,还是现在就可以开始干了?

实现自举功能

开始自举 - 用段言重写词法分析器

开始段言自举!这是最激动人心的时刻。

让我先制定自举策略,然后开始实现。

下一步建议

由于解析器在处理大型复杂代码时存在性能问题,建议采用渐进式自举策略:

阶段1(当前完成) :验证核心编译流程

阶段2 :优化解析器,修复无限循环问题

阶段3 :用段言重写词法分析器、语法分析器、代码生成器

阶段4:用段言编译器编译自己,实现完全自举

分步骤执行

现在可以:

  1. 继续实现模块解析器 - 完成完整的模块系统
  2. 先测试现有功能 - 创建示例模块验证工作流
  3. 并行开发文件I/O - 为编译器提供文件操作能力

进行这一步:自举验证 - 用段言语言编写编译器自身

还没有完成,待续

总共大约用了Dumate的5000-6000左右的积分。

相关推荐
zjxtxdy14 分钟前
C++面向对象程序开发-类与对象
开发语言·c++
Nerd(BUG版)1 小时前
KMP学习day4--Kotlin空安全与泛型
学习·安全·kotlin
東隅已逝,桑榆非晚2 小时前
算法6. 双指针法-查找总价格为目标的两个商品
c++·学习·算法
qq_406981032 小时前
c++拷贝构造函数
开发语言·c++
wdyan2973 小时前
带着小白学习-微服务-5 实战:配置中心-数据库连接
数据库·学习·微服务
爱喝雪碧的可乐3 小时前
MATLAB
开发语言·算法·matlab
叼烟扛炮3 小时前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习
叼烟扛炮3 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
H.莓飛5 小时前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
Rabitebla5 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法