【发布时间】:2014-01-06 19:31:57
【问题描述】:
我一直在考虑构建自己的编译器,几天前我终于开始着手了。我的编译器是这样工作的:
- 从我自己的文件中解析代码。 (使用 c++ 制作的 .exe 文件)
- 创建汇编代码
- 创建一个包含这些汇编代码的文件
- 编译该程序集文件(如果已生成)(使用 vbs 脚本完成)
- 链接 .obj 文件
- 我们有我们的 .exe 文件
现在我很难找到解析代码的最佳方法。我还没有真正做到这一点,但我会把我的想法放在这里。
- 找到所有变量并声明它们。变量前面会加上一个 'var'(现在)。未初始化的变量将被放入.data?部分和 .data 部分中的初始化部分。
- 找到主程序并开始执行函数和操作。
现在我只是想知道是否有人可以改进我的想法。或者如果有人有更好的想法来制作某种编译器和你自己的编程语言。
【问题讨论】:
-
这对于 Stack Overflow 来说是一个过于宽泛的问题。找一本关于编译器构造的好书——有好几本。
-
这个问题对于一个 SO 问题来说太大了。要正确回答您的问题,需要一本好书和/或一学期的课程。我参加了这个在线课程,并认为它非常棒:coursera.org/course/compilers(是的,您在该课程中构建了一个编译器,面向对象的语言也不少。我的功能 100%,甚至还有一些不错的优化。)跨度>
-
StackOverflow 不是一个共鸣板。编译器是广泛而复杂的主题,当您有具体问题时,请回来提问。
-
我不知道它是否仍然相关但搜索“编译器 - 原理、技术和工具”也称为“龙书”
标签: c++ assembly compiler-construction