最近正在构思汉澳现代战争武器系统的设计,其中有部分是软件设计,如果还是用C++之类语言设计系统,肯定很低效,而且不利于维护和更新升级。我写过的程序用字母缩写,过几年后重新打开看忘记什么意思了,显然不用中文是不行的。
我一直念念不忘梦寐以求的中文编程语言器普语言一直没有重大进展,这可是大大影响武器系统的设计。我一直希望直接在 C#基础上改进支持中文就可以了。但是定义的语法如果用jay生成语法分析器parser并不支持中文,因此几年来郁郁不得志。但是我是不会放弃的。
于是我又开动搜索引擎,开始搜索,输入这些关键字,C#中文,中文编程,汉语编程。结果发现有 C++汉语编程,可以用#define宏定义实现,不仅标识符,类型可以定义中文,关键字也可以,彻底中文。但是我对c++汉化不太感兴趣,我心目的器普语言不是 C++。再搜,看到有C#可以给中文编程,变量名可以中文,类型用using建立别名,也是中文,唯一遗憾的是关键字不能中文,这样中文化是不彻底的。我看到易语言新版本支持类似c#,java,还有从英文关键字,难道也是用开源代码来改改?再搜,找到一个C#中文示例程序,下载,不能运行,但是看到代码是支持中文的。难道这就是支持中文的c#编译器?如果能看看他的代码就好了。于是我反编译了他的程序,啊,真的看到了,原来中文关键字是这样支持的啊?编译一下反编译的程序,不能成功,于是下载一个C#编译器源代码,使用mono 里面提取出来的。按照前辈的程序照改,加入中文,编译,ok,用它编译hello程序,啊哈,成功了!!我决定不改他的关键字,而是增加一个中文关键字,运行,结果就是支持中英文关键字,if和如果同时支持呢?难道这就是易语言.飞扬的双语关键字??
最后我想,既然是器普中文编程语言,肯定要彻底中文,于是我把编译器里面的关键字源代码注释掉,替换上中文关键字,然后编译运行,器普语言雏形就出来了。
如果只是这样改一下,这个sepl.net就是中文 C#,而且完全支持调用编译好的 c#代码,比如 Sytem其实底层类库是一样的。
下面就是把.net类库彻底汉化,然后用新的语言重写编译器,那就成为一个独立的新型的编程语言了。为了区分cs ,我把扩展名改成 sl.看看我编译用的源代码:
hello.sl
--------------------------------
引用 System;}
运行如下
F:\code\sepl\src>del hello.exe
F:\code\sepl\src>gmcs.exe hello.sl
F:\code\sepl\src>hello.exe
Hello, World!
大胆刁民
当 窗口名
当 窗口名
当 窗口名
当 窗口名
当 窗口名
当 窗口名
当 窗口名
当 窗口名
当 窗口名
当 窗口名
执行 窗口名
执行 窗口名
执行 窗口名
执行 窗口名
执行 窗口名
执行 窗口名
执行 窗口名
执行 窗口名
执行 窗口名
执行 窗口名
F:\code\sepl\src>pause
请按任意键继续. . .
好搞笑啊,如果世界都能靠替换解决问题,那么我们还需要做什么?
等我发布了你们也反编译,那么用c#反编译上面的程序会怎么样,反了一下:
public static void 主函数()
{
int num2;
int num = 1;
Console.WriteLine("Hello, World!");
string str = "大胆刁民";
if (num == 1)
{
Console.WriteLine(str);
}
for (num2 = 0; num2 < 10; num2++)
{
Console.WriteLine("当 窗口名");
}
num2 = 0;
do
{
Console.WriteLine("执行 窗口名");
num2++;
}
while (num2 < 10);
}
没能反出sepl,而是反到 c#了。用c#也编译不了。也许以后也会有sepl反编译器,不过我是不会做的,自己搞自己啊。
因为sepl编译器使用 C#编译,所以可以彻底反编译。
我决定在新的sinox操作系统版本发布这个支持中文的编程语言,他叫mono.net,我的就叫sepl.net
从2003年提出sepl到实现,已经10年了,人生能有多少个10年呢?不过现在终于可以宣告,sepl不再是虚构,而是变成现实。
search&replace,让一切成为可能.
搜索替换,也只能这样,人家mono项目融资1200万美元,我们只有几块钱,只能拿来,搜索替换,复制粘贴。
这就是开源的力量,洋为中用,为我所用。