一种C语言编译系统的实现设想

可能的方案选择

1、可直接将标准C90的代码编译成特定目标机器语言(x86)的编译器
2、将标准C90的代码编译成某种约定好的VM字节码的编译器,以及可执行此字节码的虚拟机

实现的大概说明

我设想用 C++ 编程语言来实现这个编译器 (可能附带虚拟机)
如果要实现第二种模式的话,也需要设计一套满足具体执行需求的虚拟机指令集 (Virtual Machine Instruction Set)
词法分析器、语法分析器,语义分析及代码生成器,甚至是装载器、虚拟机等模块,也得基于底层给出 C++ 类的实现,直到构造、组合成一套完整的编译系统

对于本人而言的技术难点

  • 语义分析及代码生成器这部分我曾经没有实现经验,这次实现是摸着石头过河,也是一种新的挑战
  • C90 标准的细节需要自己去更深层次地掌握,避免出现与C90标准规定不符合、不兼容的内容
  • 编译系统的实现的复杂度比较高,整体模块设计十分复杂,从底层一层一层地设计、然后加以实现、甚至是编写过程中的排错工作,对于本人也是不小的挑战
编译器  C 
📅 更新时间:2021/10/17 Sunday 20:56

🖊️ 本文由 Alone Café 创作,如果您觉得本文让您有所收获,请随意赞赏 🥺
⚖️ 本文以 CC BY-NC-SA 4.0,即《署名-非商业性使用-相同方式共享 4.0 国际许可协议》进行许可
👨‍⚖️ 本站所发表的文章除注明转载或出处外,均为本站作者原创或翻译,转载前请务必署名并遵守上述协议
🔗 原文链接:https://alone.cafe/2019/09/一种c语言编译系统的实现设想
📅 最后更新:2021年10月17日 Sunday 20:56

评论

Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×