前天因 此答,又拿起五年多前 看的《我的第一本编程书》。距离中文版发行已快十年,这是 当时译者向作者也是他的老师平山尚所作。

随书语言工具 Sunaba(沙盒)官网 有关于语言设计的思路分享,比如(机翻):

内存重写的符号通常是=

原因如下:

  • 它与“等于”运算符重叠。我不想使用一个符号来达到两个不同的目的。我不喜欢“==”。
  • 在数学中,= 有三种含义。分配、定义和关系。在数学中,这三个是根据上下文来使用的,但是有不少人不明白这一点。它很难。我不想给沙盒带来那种困难。
  • 左边是“要操作的内存”,右边是“要设置的值”,因此含义不对称。我不想给它一个对称的符号。

sunaba 源码 拖到本地后,在 Visual Studio 2022 打开 src/Sunaba.sln。sunabalib 正常打开,但提示 sunaba 部分需手工安装 .NET framework 4.8。先装了 4.8.1,发现无效,继续装了 4.8 才正常打开。

选择 Sunaba 编译生成很顺利。后发现 Program.cs 中可设置界面和语法的语言,中日韩三种可选,于是改选中文:

        //select language
//        private static string mLangName = "japanese";
        private static string mLangName = "chinese";

再次生成 Sunaba.exe。将中文语法的 范例豪华版.txt 用此 exe 打开运行如下,界面也显示中文:

sunaba

反馈信息还有本地化空间。

原书中文完整例程 范例豪华版.txt 附在 出版社官网「随书下载」部分,片段如下:

只要 1 #无限循环
   如果 存储区[50009] #重新开始游戏
      纵 → 1
      横 → 5
      旋转 → 0
      种类 → 0
      下落计数器 → 0
      将格子行列的状态初始化()
      绘制墙壁和底部()
可以研究一下那块亮黄色 ___ 为何悬在空中。