【发布时间】:2019-04-01 16:18:53
【问题描述】:
当变量在表达式中使用时,编译器如何跟踪变量的声明?
例如,如果我有以下代码:
int num = 1; //declaration
num = 2; //expression
我知道语法树会为声明生成一个分支,为表达式生成一个分支,但它如何在语义分析器中维护它们之间的连接?
【问题讨论】:
-
学习这些东西的最好方法(IMO)是尝试制作你的自己的编译器(对于一些简单的语言)。这很有趣,而且你会学到很多东西(除了符号和变量如何在编译器的不同部分之间传递)。
标签: c compiler-construction abstract-syntax-tree semantics