3作者: itsarnavsh大约 1 个月前原帖
我开发了Resrap,这是一个Go语言包,可以接受ABNF格式的语法,并生成无限长的语法正确代码序列……可以完全随机生成,也可以使用种子进行确定性生成。 ABNF是我为这个项目修改的EBNF版本([链接](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form)),基本上意味着在生成代码时,你可以指定20%的行是if{}块,50%是while{}块,这样可以实现更自然的代码生成,同时支持无限代码生成。 它的速度非常快……在我的笔记本电脑上大约26秒生成了约4000万个C语法的标记,并且支持多线程,实际上性能得到了提升,因为它非常容易并行化。 我最初是为了一个打字测试项目制作这个工具(我不想手动存储代码片段),但它在其他场景中也变得非常有用,比如: - 压力测试解析器和代码检查工具 - 为技术演示创建不受版权限制的“lorem ipsum”代码 - 生成你在电影中看到的那些无尽的“黑客”代码场景 我很好奇其他人可能会用它做些什么有趣的事情! GitHub: [链接](https://github.com/osdc/Resrap) 网站: [链接](https://resrap.osdc.dev/)