只需要帮助启动一个从 c++/c 转移到 mips 的程序
Just need help starting up for a program that transfer from c++/c to mips
首先我想说明一下,我要的是作业。
我的想法是用 c++ 或 java 编写一个程序,用户输入一个简单的 c 代码(A=B、一个 while 循环、一个 for 循环和数组函数),输出是 mips代码(lw addi 等)我们可以自由使用任何寄存器。
我当然不是要完整的代码。问题出在我的脑海里我只能想到硬编码整个输入字符串然后将其切割成一部分然后 运行 大量的 if 条件和/或切换情况我认为必须有一个更简单的方法但是我想不通了。
该死的,每当你开始学习编译器时,回想起来都会很疯狂。
无论如何,您可能还没有达到从头开始构建 C 编译器的水平。
所以这样想,您需要有一组指令,是的,您将必须遍历程序字符串并将字符串转换为 MIPS 指令。
最天真的方法可能是你的老师所期望的,除非它是一门编译器课程,将逐行解析程序文本,因为它应该是一个简单的程序,正如你所说对于您将评估的每种类型的表达式都有很多条件。
提示:阅读 for / while 循环后立即将其保存为标签,然后您需要从那里检查跳转的终点在哪里(完成 for/while 条件等)
现在如果是编译项目。我强烈建议您阅读这本书:
Compilers: Principles, Techniques, and Tools
因为要构建一个真正的编译器,您需要了解编译器的所有阶段以及它们如何协同工作...您还需要了解一些语言理论。
首先我想说明一下,我要的是作业。
我的想法是用 c++ 或 java 编写一个程序,用户输入一个简单的 c 代码(A=B、一个 while 循环、一个 for 循环和数组函数),输出是 mips代码(lw addi 等)我们可以自由使用任何寄存器。
我当然不是要完整的代码。问题出在我的脑海里我只能想到硬编码整个输入字符串然后将其切割成一部分然后 运行 大量的 if 条件和/或切换情况我认为必须有一个更简单的方法但是我想不通了。
该死的,每当你开始学习编译器时,回想起来都会很疯狂。
无论如何,您可能还没有达到从头开始构建 C 编译器的水平。
所以这样想,您需要有一组指令,是的,您将必须遍历程序字符串并将字符串转换为 MIPS 指令。
最天真的方法可能是你的老师所期望的,除非它是一门编译器课程,将逐行解析程序文本,因为它应该是一个简单的程序,正如你所说对于您将评估的每种类型的表达式都有很多条件。
提示:阅读 for / while 循环后立即将其保存为标签,然后您需要从那里检查跳转的终点在哪里(完成 for/while 条件等)
现在如果是编译项目。我强烈建议您阅读这本书:
Compilers: Principles, Techniques, and Tools
因为要构建一个真正的编译器,您需要了解编译器的所有阶段以及它们如何协同工作...您还需要了解一些语言理论。