我有兴趣为语言编写语法检查程序。基本上我想做的是创建一个cli工具,它将获取一个输入文件,然后编写它找到的错误。我想要解析的语言与图灵基本相似,而且相当丑陋,有时候也很痛苦。必须使用唯一的其他语法检查器
我应该使用哪种语言?我想我会用Ruby编写它,但Python可能更快或者有更好的解析库。
我应该在Ruby或Pearl中使用哪些库?哪个更容易。
是否有用于定义语法的入门读物?这样的任务可能会变得混乱,我不确定如何处理它。
答案 0 :(得分:1)
如果是我,我会用Ruby写它,后来担心速度。如果该程序是一个失控的命中,我可能会添加一个本机gem来加速最慢的位,但大部分都留在Ruby中。如果它成为世界上最重要的程序,或者我没有别的事可做,我可能会在那时用C或C ++重写它,但不是之前。
我可能会补充说,直接在C中编写和优化语言解析器是一种有趣的学习体验。你得到大致没有字符串处理帮助,所以你最终做了所有的解析,但你有机会只做最少量的处理。这与Ruby体验相反。为了获得最大速度,你最终会做一些事情,比如为malloc编写前端,你知道你永远不需要释放的多个对象在malloced块中永久分配。虽然通常使用带有C / C ++的yacc(1),但你当然可以编写递归下降解析器并获得更深入的学习体验。
当然,已经完成了所有这些,我很高兴现在坚持使用Ruby。