中文编程
首发于中文编程

中文编程Z语言设计思想

中文编程Z语言设计思想

无需多说,进行计算机编程的第一步是掌握编程语言。计算机刚出现用0和1的机器语言,后来用一些英文字母作为助记符号的汇编语言,再到后来人们创造了Fortran、Lisp、C、Pascal、C++、Java等等高级语言。编程的难度是越来越低,掌握编程的人数越来越多。

现在的编程语言有几百种,绝大部分是用英文字母编写的语言。但是在国内也有少部分开发了用中文编程的语言,比如易语言、O语言、习语言。用中文编程的好处对于我们中国人来说更容易掌握。但是这些中文编程语言都没有发展起来。

我认为一个成功的中文编程必须做到如下几点。

第一,当前主流的编程语言对于普通人还是太难了,即使是最简单的Javascript、Python、PHP等,也都有太多的知识点,比如闭包、作用域、位运算、迭代器、继承。为了让行业外人士能够容易掌握,中文编程一定不能照搬主流语言,而要对它们进行简化,去除复杂的知识点。

第二,要“信达雅”。好的外文的翻译要“信达雅”,好的中文编程也要“信达雅”,像一篇文章一样,少用符号,多用文字,要让人容易读,容易理解。

第三,不要有太多嵌套。

为了实现以上目标,我基于当前编程语言,在更高一级的层次,用新的理论和方法设计实现了Z语言。下面以C#和Z语言对比解释一下Z语言的设计思路。

C#语言中实现用控制台打印”你好”的程序是

控制台.打印(“你好”);

Z语言实现打印“你好”的程序是这样写的

控制台打印“你好”

Z语言程序没有点号,没有括号,末尾没有分号,看起来和一般的中文句子没有两样,中国人理解起来非常容易。

‘.’运算符是取类的成员,括号是表示它的内部是参数。它们的作用是提示C#编译器程序要调用类“控制台”的方法“打印”,调用的参数是“你好”。Z编译器是根据“控制台”和“打印”两个词的关系确定调用类“控制台”的方法“打印”,调用的参数是“你好”。

C#取成员用‘.’号,比如

T.年龄

Z语言是这样

T的年龄

用“的”代替点运算符,和汉语语法保持一致。

去除new

new是新建一个示例成员,Z语言不需要

C#程序

P=new点(0,0);

Z语言程序

P=点(0,0)

函数

C#语言是 函数名称+参数列表

Z语言是 函数部分1+参数1+函数部分2+参数2+...

函数部分和参数间隔开,函数部分必须至少有1个,函数参数可以有0个或若干个。比如定义这样一个函数

C#

打开文件(文件,读写方式)

Z语言

以(读写方式)打开(文件)

省略主语

枚举类可以省略主语

比如枚举enum读写方式{只读方式,只写方式,读写方式}

C#调用

打开文件(文件W,读写方式.只读方式)

Z语言调用

以(只读方式)打开(文件W)

C#是形式语言,根据程序中的符号确定程序的语义,Z语言程序中的符号很少,编译只能根据词的关系确定程序的语义。

目前Z语言整体开发完成,可以正确编译运行,但是离正式产品还有很远距离。它还需要人员严格测试编译器,编写功能较完整的类库,开发编辑工具,各种文档轿车的编写。

我相信未来必定是类自然编程语言的天下,人人都会用它编程程序,更好的利用计算机为工作生活服务。Z语言目前是在.NET平台上,但是它以后会移植到JAVA平台、嵌入式设备、物联网上。未来懂编程的人数将会远远超过现在的几百万,可以达到几千万人。现在只是刚起步,它的理论实践还需要非常多的研究,这正是我们能大展拳脚的地方。

编辑于 2018-07-25

文章被以下专栏收录

    在所有编程语言和领域中尝试编写中文代码,开发相关工具,总结经验,一致代码风格。包括中文命名,汉化现有语言,创造中文语法的编程语言等等。作为最熟悉的母语,用来编写代码会让代码更容易被自己和母语相同的其他开发者理解。基于英文的编程语言和框架中,使用中文命名有时有技术问题。希望这里为后人趟雷,填坑。多数现有API是英文的,这里也会对其中一些常用的进行汉化。当然,这里也会对基于中文的编程语言进行探讨。包括汉化基于英文的编程语言,以及创造新的编程语言。