csharp高级练习题:我最小码解释器(又名Brainf ** K)【难度:3级】:
从现实世界的启发Brainf \ * \ * K,我们要创建的语言将支持以下指令(机器内存或者’的解释数据"应做字节的一个潜在的无限数组矩阵,初始化为0):
*>
递增数据指针(以点到下一个小区向右侧).
*<
递减数据指针(以点到下一个小区到左).
*’+'增量(由一个增加,截断溢出:255 + 1 = 0)在所述数据指针的字节.
*-
递减(减少一个,当作无符号字节:0 - 1 = 255)在所述数据指针的字节.
- 在数据指针
.
输出的字节.
*,
接受输入的一个字节,在数据指针在字节存储其值.
*[
如果在数据指针的字节为零,则代替向前移动指令指针到下一个命令,匹配后向前跳它来命令]
命令.
*]
如果在数据指针字节不为零,则代替向前移动指令指针到下一个命令,匹配[
命令之后跳回命令.
该功能将在输入…
- 该程序代码,用机器指令序列的字符串,
- 程序输入,一个字符串,最终为空,将被解释为使用每个人物的ASCII码字节数组,并将由
,
指令被消耗
…并且将返回…
- 解释代码的输出(总是作为一个字符串),由
.
指令产生.
对于BF:代码和输入由``分开"!".