Compiler construction 编译器构造中的数据段

Compiler construction 编译器构造中的数据段,compiler-construction,data-segment,vm-implementation,Compiler Construction,Data Segment,Vm Implementation,我正在为自己定义的语言开发一个编译器,我已经生成了3个地址代码,现在我要开发一个虚拟机,它可以运行这3个地址代码。但为此,我需要数据段(在这里我可以存储所有变量值)。我的语言中有两种数据类型(int和char)。 请给我一个提示,如何构造一个可以存储所有变量(int和char)值的数据段 感谢阅读我的问题我强烈建议阅读;它很好地解释了很多与你的问题相关的事情 虽然C.Queinnec的书显然专注于类似Lisp的语言,但它向您传授了一些概念,您可以将这些概念应用于许多其他语言,包括您自己的语言。特

我正在为自己定义的语言开发一个编译器,我已经生成了3个地址代码,现在我要开发一个虚拟机,它可以运行这3个地址代码。但为此,我需要数据段(在这里我可以存储所有变量值)。我的语言中有两种数据类型(int和char)。
请给我一个提示,如何构造一个可以存储所有变量(int和char)值的数据段

感谢阅读我的问题

我强烈建议阅读;它很好地解释了很多与你的问题相关的事情

虽然C.Queinnec的书显然专注于类似Lisp的语言,但它向您传授了一些概念,您可以将这些概念应用于许多其他语言,包括您自己的语言。特别是,您需要将您的语言的更多or形式化

您还可以至少研究一些VM,包括

您以后可能会想使用即时编译技术,尤其是使用or等

另见

顺便说一句,您可能会发现让您的语言实现重用某些现有VM更方便


我不明白为什么数据段是这样一个问题。您的VM通常以一些堆映像开始,其中包含数据和字节码。许多语言(至少隐式地)或至少混合了代码和数据。

你的目标是什么体系结构?@HunterMcMillen我对这个问题的理解表明他在写“机器”…@michaelb958我正在为一种我自己命名为BCP语言的语言编写一个编译器我已经经历了这些阶段1-LA 2-Parser 3-Translation现在我不是解释器的一部分