Alone Cáfe
There is no limit to learning.
阿龙咖啡
一种C语言编译系统的实现设想

可能的方案选择

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

实现的大概说明

我设想用 C++ 编程语言来实现这个编译器(可能附带虚拟机)

如果要实现第二种模式的话,也需要设计一套满足具体执行需求的虚拟机指令集(Virtual Machine Instruction Set)

词法分析器、语法分析器,语义分析及代码生成器,甚至是装载器、虚拟机等模块,也得基于底层给出 C++ 类的实现,直到构造、组合成一套完整的编译系统

对于本人而言的技术难点

  • 语义分析及代码生成器这部分我曾经没有实现经验,这次实现是摸着石头过河,也是一种新的挑战
  • C90 标准的细节需要自己去更深层次地掌握,避免出现与C90标准规定不符合、不兼容的内容
  • 编译系统的实现的复杂度比较高,整体模块设计十分复杂,从底层一层一层地设计、然后加以实现、甚至是编写过程中的排错工作,对于本人也是不小的挑战
赞赏
知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名。

发表评论

textsms
account_circle
email

阿龙咖啡

一种C语言编译系统的实现设想
可能的方案选择 1、可直接将标准C90的代码编译成特定目标机器语言(x86)的编译器2、将标准C90的代码编译成某种约定好的VM字节码的编译器,以及可执行此字节码的虚拟机 实现的大概说…
扫描二维码继续阅读
2019-09-29