Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compiler construction 编译器代码生成:地址描述符和数组_Compiler Construction - Fatal编程技术网

Compiler construction 编译器代码生成:地址描述符和数组

Compiler construction 编译器代码生成:地址描述符和数组,compiler-construction,Compiler Construction,我正在构建一个从DECAF语言到MIPS汇编的简单编译器。现在我能够生成三个地址代码,我从代码生成阶段开始 在几本书中使用了寄存器描述符和地址描述符的结构 我面临的问题是,我不知道如何将数据保存在地址描述符上,以便进行数组访问,因为我的三个地址代码通常有一个临时文件,用于保存数组索引的偏移量,并且这个临时文件在运行时可能会更改 例如: y := b[$t1], x 对于简单变量的情况,这很容易,因为我有标识符,甚至还有一个整数,对应于变量的内存动作。如何管理数组的案例,使地址描述符在编译器中工

我正在构建一个从DECAF语言到MIPS汇编的简单编译器。现在我能够生成三个地址代码,我从代码生成阶段开始

在几本书中使用了寄存器描述符和地址描述符的结构

我面临的问题是,我不知道如何将数据保存在地址描述符上,以便进行数组访问,因为我的三个地址代码通常有一个临时文件,用于保存数组索引的偏移量,并且这个临时文件在运行时可能会更改

例如:

y := b[$t1], x
对于简单变量的情况,这很容易,因为我有标识符,甚至还有一个整数,对应于变量的内存动作。如何管理数组的案例,使地址描述符在编译器中工作

多谢各位