我写解释器、工程工具和后端服务,关注语言如何表达计算,以及系统如何保持可理解、可预测和可维护。
这里整理我的代码实验与工程实践。个人介绍、经历和文章见 song-zh.com。
从纸带上的指令执行,到作用域、对象模型,再到语言规则本身的可扩展性,这组项目记录了我对“语言应该如何设计”的持续追问。
BrainFuck Pro · C
从一个很小的计算模型入手,把程序的执行过程展开来看。在 Brainfuck 解释器上加入扩展指令、断点和步进模式,也提供创建、检查和重置执行环境的 C API。
GWARF · C
尝试自己组织一门语言的规则:控制流、作用域、函数、对象与异常。项目中保留了语法调整和修复记录,可以结合解析器、解释器与示例,观察语言机制如何落到实现中。
VirtualMath · C
进一步实验变量与表达式的关系。例如,$10、$(20 + 30) 这样的“超级变量”允许通过表达式访问变量,探索变量名超出普通标识符后的语言语义。代码分为核心解释器与使用它的交互程序。
VirMat · C
对 VirtualMath 的一次深度重构,推翻了不少旧设计,两者不兼容。重新区分值本身与从属关系,组织变量空间、语句和解析规则。仓库主要留下了核心模型与解析器的头文件,是一次尚未完成的设计探索。
aFunlang · C++ / CMake
尝试用更少、更统一的基本规则组织语言,将可扩展字面量、控制结构函数化和运行时可塑性作为设计方向。README 记录了这些目标;现有代码可以从解析器、核心对象和运行时模块开始阅读,具体完成范围以实现为准。
这条探索路线包含多次重新设计。我愿意回头检验已有的假设,也在这些实验中逐渐明确:表达自由需要可以理解的规则,抽象需要能够解释的实现。
另一组项目来自服务部署和日常开发中的具体问题:依赖如何准备,配置如何加载,连接如何管理,程序如何启动和退出。
-
BackendServerTemplate · Go 将日志、命令行、配置读取、配置变更后重启、服务注册与优雅退出组织成后端服务模板,探索一个服务从启动到清理的完整生命周期。阅读入口:不同运行模式的入口实现。
-
CFEP · CMake 在配置阶段下载、构建和安装第三方依赖,再交由
find_package查找,处理构建前的依赖准备。阅读入口:CMake 模块。 -
ssh-watcher · Go SSH 监听与转发服务,支持基于 IP 和地理位置的访问规则、PROXY protocol,以及邮件和企业微信告警。阅读入口:连接与转发实现 · 配置定义。
-
huan-gogs · Go 基于 Gogs 的定制版本,围绕实际部署需求调整邮件与 TLS、权限、登录和仓库创建逻辑。阅读入口:改动说明。
CoTan 是早期用 Python 探索科学计算、数据处理与工具集成的项目。更多实验保留在 仓库列表 中。
上面列出的项目均已归档,保留作历史作品与实验记录,不再持续维护。它们记录了当时的实现与取舍,部分设计并未完成;阅读和使用时,请结合各仓库的文档与源码判断。
个人官网与博客 · 联系页 · work@song-zh.com
各项目的许可条款以其仓库内的许可证为准;本 Profile 仓库使用 MIT License。安全问题请按安全策略通过邮件报告。





