原谅我的英语。我最近试图了解编译器的不同部分并用一种游戏语言来实现它们。我想知道语义分析器的工作是什么,因为我读到的许多语义分析器应该做的事情并不是真正适用于动态语言,例如类型检查、范围检查等,因为这些事情是在运行时检查的时间。
所以我认为动态语言(如 LUA 或 PYTHON 或 RUBY)的语义分析器的一些工作是
- 确保分配不错,例如 1 = a 或 5 = 5
但是,我不确定动态语言编译器的语义分析阶段还有哪些其他工作。似乎它在动态语言中的工作量很小,因为大部分工作都是在运行时完成的。语义分析器还为动态语言处理了哪些其他常见工作?我觉得我错过了语义分析的大部分内容。谢谢你。