Skip to content
Natsu Kinmoe edited this page Aug 26, 2020 · 7 revisions

For English users, please go to here to read the English version of the tutorial.

Natsulang简介

起源

这个语言的开发,起初是源于一个念头。

CJC Apps的代表作——CJCMCG,是一款功能强大的MIDI计数君(甚至可以解压zip等压缩文件来读取内容)。这款软件和其他MIDI计数君一样,可以设计自己的计数君模板。模板中可用的功能对于大部分用户,其实已经够用了。

有一天奇思妙想,如果这个计数君里面能写脚本了,那该多好。其实这个奇思妙想的来源是Zenith-MIDI这个开源项目,这是一个导出MIDI视频的项目,在最新的2.0版本中加入了脚本功能,之后你就可以写一个脚本来生成你自定义的视频样式。这个功能比较受欢迎,但是就是有些麻烦,你需要熟悉Zenith-MIDI的API,并且学会C#如何使用,才能制作出一个合格的视频样式。CJCMCG也需要一个这样的功能,但是,作为一款轻便、可随身携带的软件,CJCMCG可不希望让这个功能过于庞大,加上这个功能之后可执行文件大小变化不能太大,而且最好是在文字中直接嵌入代码(像PHP一样),这样最大的好处就是可以和之前的模板基本兼容,而不需要进行特别大的改动。

之后对这个语言进行了构思之后,我找到了一个比较合适的实现方案,能满足上面所有的需求。于是,在十几天的开发之后,在CJCMCG的开发者hccdy的配合下,Natsulang和新版CJCMCG共同进入测试阶段,这个奇思妙想终于成为了现实(用Natsulang生成的第一个计数君见这个视频)。

特点

Natsulang是基于Python的语言,所以里面许多语法都和Python很像。

Natsulang虽然是一款文字处理语言,但是也可以有其他用途。对于C++或C#中若干行代码才能解决的问题,Natsulang中往往只要一句话(甚至有的时候比Python还短)。比如,下面是一个程序,判断输入的数字是否是一个两位数,如果是,输出1,否则输出0:

{s=int(input());if(10<=s&&s<=99)(1)(0)}

这个代码对于第一次接触的人来说可能比较难懂,可以先阅读从下一章开始的教程。一旦你知道了这个语言的运行方式,这个程序就很好懂了。

Python是一个不紧凑的语言,Python代码中有很多的空格、换行和Tab不能删除(毕竟Python是用Tab代替循环中的大括号的)。但是,Natsulang却是一个非常紧凑的语言,除了字符串中的空格和func之后的空格以外,其余空格、换行和Tab均可删除并对程序不会产生任何影响。

关于一些有趣的natsulang程序,可以观看这个视频

运行方法

首先安装Python 3(如果你用的是Windows,则需要把Python 3添加到Path),然后在终端中输入pip install natsulang

安装完毕之后,在终端中输入natsulang,如果没有错误,则安装成功,可以运行。