当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《用于构建编译器的通用语言》经验,为你挑选了3个好方法。

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

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

我打算以CLR为目标.



1> S.Lott..:

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

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

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



2> squadette..:

编写Scheme编译器.

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


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

3> Cody Brociou..:

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


除非你最喜欢的语言是C++;)
推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有