leetcode18java-COMP603-2015:COMP603-2015

时间:2024-07-26 12:25:16
【文件属性】:

文件名称:leetcode18java-COMP603-2015:COMP603-2015

文件大小:5.69MB

文件格式:ZIP

更新时间:2024-07-26 12:25:16

系统开源

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


网友评论