我有兴趣编写一个非常简约的编译器。
我想编写一个满足以下条件的小软件(在 C/C++ 中):
- 以 ELF 格式输出 (*nix)
- 输入是单个文本文件
- 类 C 语法和句法
- 没有链接器
- 没有预处理器
- 非常小(最多 1-2 KLOC)
语言特点:
- 本机数据类型:char、int 和 floats
- 数组(适用于所有本机数据类型)
- 变量
- 控制结构(if-else)
- 职能
- 循环(会很好)
- 简单代数(div、add、sub、mul、布尔表达式、位移等)
- 内联汇编(用于系统调用)
谁能告诉我如何开始?我不知道编译器由哪些部分组成(至少在我可以立即开始的意义上)以及如何对它们进行编程。谢谢你的想法。