首页 > 仰望星空 > 一种C语言编译系统的实现设想
2019
09-29

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

可能的方案选择

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

实现的大概说明

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

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

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

对于本人而言的技术难点

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

打赏 赞(2)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

最后编辑:
作者:Yenyu
Yenyu
编程爱好者

一种C语言编译系统的实现设想》有 2 条评论

  1. 头像 龙哥的舔狗 说:

    龙哥我爱你

留下一个回复

你的email不会被公开。