leetcode18java COMP603 2015:COMP603 2015

weixin_96181 1 0 zip 2024-10-08 03:10:18

leetcode 18 java编译器设计6月4日:实验4。优化Brainfuck优化您在实验室3中开发的编译器和解释器。修改CommandNode使其包含一个计数器(大概是一个int或类似的)。稍微修改解析器,使其仅在遇到相同命令的完整运行后才发出命令节点。 (例如,-----变成CommandNode('-', 5))相应地修改解释器和编译器。简而言之:对Brainfuck代码进行优化。然后,使用CommandNode优化掉某些循环(例如, [-]或[+] )以将零分配给当前内存位置。修改Command以包含另一种命令类型:ZERO修改CommandNode构造函数要么使用优化器访问者遍历树进行替换,要么预处理输入以用新节点类型替换[-]或[+]。提示使用peek检查何时将命令节点添加到当前容器。如果您的编译器生成的代码包含数字文字,并且打印机和解释器仍然工作,您就可以告诉优化器正在工作。在src/99bottles.bf上测试你的旧的src/99bottles.bf解释器,并将它与你优化的src/99bottles进行对比。

用户评论
请输入评论内容
评分:
暂无评论