![](https://i-blog.csdnimg.cn/direct/5d0b141b51c8425eb59266a7d7e3a856.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
TincyC编译器实现
文章平均质量分 86
TincyC编译器实现
Stardep
篇篇干货,一个不写废话的博主
展开
-
TinyC编译器2—中间代码Pcode(上)
pop a 命令运行后,栈顶的元素被取出,并将其值赋给了变量 a ,相当于 a = stack.pop() ,此命令是唯一一个能给。命令,声明变量,向下增长栈的空间,将新增的空间分配(绑定)给刚声明的变量,并将变量名及分配给它的地址保存到变量表中。当执行pop命令的时候,如果后面是一个变量名,那么虚拟机就会将栈顶元素的值赋值给那个变量,同时栈顶元素也就没了。上面的代码中用 “ ~ ” 来代表栈顶,这将是 Pcode 中的一个约定。命令,将元素放入栈顶,或取出栈顶元素。注意:当虚拟机执行push命令的时候。原创 2024-08-10 11:27:32 · 222 阅读 · 4 评论 -
TinyC编译器1—语法
此文件中提供了 print 和 readint 函数,另外,将所有 C 语言支持、但 TinyC 不支持的关键词全部 define 成空名称,这样来保证 gcc 和 TinyC 编译器的效果差不多。第一行的 #include “for_gcc_build.hh” 是为了利用gcc来编译该文件的,TinyC 编译器会注释掉该行。支持这些逻辑运算符:+, -, *, /, %, ==,!注意:如果系统么有安装gcc,那根据不同的系统进行网上查找安装教程。原创 2024-08-07 12:37:15 · 580 阅读 · 3 评论