用于构建编译器的通用语言

Bro*_*nie 12 compiler-construction

受到Eric Sink对stackoverflow播客的采访的启发,我想在业余时间为学习体验构建一个完整的编译器.我最初的想法是构建一个C编译器,但我不确定它是否需要花费太多时间.

我想知道是否有一个较小的通用语言更适合作为第一个编译器工作实现?或者是在合理的时间范围内(200小时)可行的C实现?

我打算以CLR为目标.

S.L*_*ott 13

你会很高兴为较旧的较小语言编写编译器. 例如,Pascal被设计为学习工具.Pascal语言小而优雅; 编译器可以很简单地编写.

甚至OberonModula-2编译器的复杂程度也与Pascal相似; 他们的设计是由同一个人Niklaus Wirth驾驶的.

像C这样有组织发展的语言太过怪癖,无法成为良好的学习经历.


squ*_*tte 9

编写Scheme编译器.

请参阅:编译器构造的增量方法

  • Scheme编译器将"掩盖"的一件事是lexing和解析阶段.Scheme没有更多代数表达式解析器(运算符优先级等)和复杂语法的常见问题. (2认同)

Cod*_*ous 8

我的建议是选择你最喜欢的语言.通常,你进入它的知识将超过为它编写编译器的难度.

  • 除非你最喜欢的语言是C++;) (18认同)