构建编译器步骤
Building a compiler steps
我考虑构建自己的编译器已经有一段时间了,几天前我终于开始了
- 从我自己的文件中解析代码。(带有用c++制作的.exe文件)
- 创建程序集代码
- 创建包含这些程序集代码的文件
- 编译该程序集文件(使用vbs脚本完成)
- 链接.obj文件
- 我们有我们的.exe文件
现在我很难找到解析代码的最佳方法。我还没有真正做到这一点,但我会把我的想法放在这里。
- 查找所有变量并声明它们。变量前面将加一个"var"(目前)。未初始化的变量将被放入.data?节,并在.data节中初始化
- 找到主要程序并开始执行功能和操作
现在我只是想知道是否有人能改进我的想法。或者,如果有人有更好的想法来制作某种编译器和您自己的编程语言。
给自己一本a.V.Aho,M.S.Lam,R.Sethi,J.D.Ullman:Compilers:Principles,Techniques,and Tools并开始学习
这本书涵盖了必要的理论背景,特别是:
- 上下文无关语法
- 递归下降、LL、LR解析
- 符号处理
- 中级代表
相关文章:
- VS 2017 使用交叉编译器构建 x64 项目
- 使用Bazel构建具有不同编译器/链接器选项的C/C++依赖关系
- 在 Azure DevOps 构建管道中使用英特尔C++编译器为 Linux 环境构建C++代码
- 在为 iOS 构建 aws-sdk-cpp 时,cmake 上的 CXX 编译器错误已损坏
- C++使用较新的编译器构建应用程序,而无需重新构建库
- 无法构建 quazip。MOC 编译器不会运行。命令行未找到相关类
- 如何使用Visual Studio编译器使用cgo构建库?
- 在Travis中为CMAKE构建指定编译器版本
- 是否有编译器标志可以使较新的 gcc 版本像旧版本一样构建
- 尝试将Winelib与标准macOS构建工具一起使用:得到奇怪的编译器错误
- 构建 C/C++ 代码时的 Gradle 编译器输出
- 尝试使用VC++编译器构建Qt应用程序:"type_traits":没有这样的文件或目录
- 如何安全地部署使用升级的编译器构建的应用程序
- 如何使用 Solaris Studio 12.4 编译器构建 Boost V1.57
- 如何使用 cmake 使用不同的编译器构建多个可执行文件
- 如何用open64编译器构建boost库
- 编译器是用以前版本的编译器构建的吗?
- Sublime Text:编译器构建选项
- Netbeans首次编译器构建错误
- 用Intel编译器构建Boost库