找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 3222|回复: 6

[【计算机类】] [转贴]如何设计汉语编程语言(航天奇侠兄原创)

[复制链接]
发表于 2005-4-18 14:37:03 | 显示全部楼层 |阅读模式
我是个爱国的人,所以我必须承受狭隘心理的煎熬。

我希望我们中国,什么都是佼佼者,不能忍受落后于人的事情。所以才有了这篇文章。

英国人用霸权将英语带到五湖四海,而离英国遥远的中国也不能幸免。痛苦!我们必须低头,可我不像某些人,我不甘于低头。尤其反感那些哈巴狗般顺服的人!可惜,这些人不是少数,而且左右中国的舆论,常常以开明人士自居。

我讨厌他们。所以我支持任何反抗霸权的尝试,或用精神力,或用才智。

汉语编程,多么愚蠢的主意啊~日本,德国,法国,韩国这些发达国家,也不尝听闻做出自己的语言的编程语言。但是我不认为他们做不出来,而是不屑去做。

从技术上来讲,现有的编程语言就和英语有很大的关系么?不,只是用了英语的标识符,而这个在技术上,完全可以直接用任何语言来代替。

在编程开发领域,真正体现英语的重要性的是在于开发资源上,技术文档,源代码注释等,英语占据了大部分的领地;而各国人在推出新技术,和在相互交流的时候,无不是采用了英文做为标准。这个痛苦的事实和英语在其他领域是如出一辙的。

难道我们为了编程语言中那几个单词,就立志要搞所谓的汉语编程语言出来?而视真正的问题不顾?

好了,让我们忘了这个愚蠢但是可以骗到不少爱国者的把戏。将议题转为,做中国人自己的编程语言,而不是汉语编程语言。

现代的语言,很多都起源于美国,这是软件实力的最好证明,而许多有志之士,也非常希望我们能在此领域有所成就。

要想与现有的开发语言竞争,并非没有可能,java就是一个很好的例子。java原先是为了设计在各个智能部件上运行而开发的,最后乘互联网的东风,成为最流行的编程语言之一。我们要做自己的编程语言,就应该从java得到启示,发现现有语言的盲点,发现未来的大趋势。

而一开始,应该突出自己的特点,让自己在小局部上有所作为,避免与现有语言正面交锋,因为不可能和有群众基础的现有语言媲美。

让我们将话题收缩,讨论一下,汉语编程(当然属于假定中的中国人创造的编程语言的一个分类,也可能有一分类是中国人创造的英文编程语言)。

回顾一下,现有的编程语言,被称为英文编程语言,这并不实至名归。准确地说,应该成为英文关键字编程语言(在vb这些可以用汉语标识的语言中),英文标识符编程语言(在c++这类不支持中文标识的语言中)等。它们除了助记符是用英文,并不采用英语的语法。使用的是编程语言特有的和自然语言格格不入的语法规则,而这也是编程语言之所以是编程语言的根本点——说到底,编程语言就是一套语法规则。

既然我们要创造一套语法规则出来,那么就不能称之为人类现有的语言。这个逻辑就像:“中文英语”——到底是中文还是英语?一般来说,我们会称之谓,中式英语,也就是借助了中文规则的英语。所以,英文编程语言,应该称为英式编程语言。

可惜,如前述,并没有借助多少英语的规则。开发出符合自然语言习惯的编程语言,直到现在都还是个研究课题。我们又何必自我膨胀?

取代英文关键字编程语言的中文关键字语言,有意义么?

好处是能实现所谓的全中文,不足之处,必须使用中文。

利大还是弊大?对于我们这些人来说,是利大于弊的,毕竟看着中文都舒服,而且有助于中文开发文档的发展。

对于外国人来说,就是个噩梦!不过我们可以只在我们华语界发展(这被外国人称为最大的市场,本来就是我们先天的优势)。

对于一些初次接触电脑的人来说,或许就认为多打几个键,麻烦。但是我们可以教育他们,要爱国。低层次的人所担心的都是低层次的东西。程序界整天讨论的议题,就可以看出我们大部分人所处的层次:什么英文在计算机上有本质的优势,说到底,不就是因为键盘上没有刻着自己想要的汉字么!!

上面讨论了原则性问题,现在考虑一下实现的方案。

一个专为教学设计的方案。

程序开发技术,可以用任何一种语言来实现,而独立出来。但是也有不少人流连于语言本身的特性(或者是受制于)。设计一种,其本身特性比较现代,能实现数据结构和算法的语言。性能和适用面为次要考虑因素,主要是语言形式,和编程界面下功夫。能简易的实现可视化,io操作,文件管理。属于功能型的高层次的语言系统。

这能够吸引学生自觉参与编程实践,必能很快速的表达创作意图。适合爱好者,小型开发,做工具软件。

一个与现有语言竞争的语言设计方案。

专注一个类别,如游戏开发而设计。

~~或许不能称之为方案,而是设想。

好了,写到这里,也该结束了,希望各位加把劲,不要抱怨没有路可走,路是人走出来的。
回复

使用道具 举报

发表于 2005-4-18 16:58:01 | 显示全部楼层
志向远大,值得鼓励,希望有一天可以看见这样的局面出现。
回复

使用道具 举报

发表于 2005-4-18 17:21:37 | 显示全部楼层
[ZT]中文的程序设计语言


  中文程序设计语言是限制国内软件发展的一个瓶颈。随着符合中文特点、具有实用意义的中文程序设计语言的出现,国内软件业的结构将会得到一个极大的调整,并在这个调整基础取得更进一步的发展。同时,随着软件成本的降低和质量的提高,企业采用信息技术的热情也会有极大提高,从而更好地促进国内信息技术的应用和发展。

  中文程序设计语言最重要的作用体现在提高国内软件的可维护性上。由于软件的特殊存在形式和用途,软件的维护性显得非常重要。同时由于现在程序设计语言对于方法名、变量名、类名等却存在着极大的理解难度,这直接决定了软件的可维护性。当然现在有些企业也意识到这一点,对命名方式借鉴国外经验作了些规范,比如采用完全英文方式、拼音方式等,但英文方式对程序员的英语有较高要求,而且涉及到具体应用行业时,其行业英语词汇对于程序员来讲是个不小的问题。而拼音方式则是一个相当临时的解决方式,汉字拉丁化的失败在某方面也说明这种方式存在的问题。中文程序设计语言的出现,将能完全改善这方面的问题,能够极大提高源代码对于国内程序员的可读性,从而提高其可维护性。同时由于去除一个中间环节,这样将更方便软件人员与行业专家间的交流,从而更好地保证了软件满足用户的需求。

  如何才能使得中文程序设计语言得到企业的认可,并得到广泛应用呢?

  首先,中文程序设计语言不能是英语程序设计语言的简单翻版。在先入为主观念限制下,中文程序设计语言容易囿于现在通用的英语程序设计语言的框架之中,有些中文程序设计语言基本上是某种英语程序设计语言的翻版,采用一一对应的方式来支持中文程序设计。当然这样就会形成非常生硬的源程序,甚至让人有了还不如使用英语进行程序设计的感觉,比如一些程序设计语言中用来求某个类或实例内存占用的语句 sizeof() ,如果一一对应成中文“大小()”就会让人有点摸不着头脑,如果以“()的大小”或“()的内存占用”来对应,则会有更好的效果。因此中文程序设计语言应该考虑中文自然语言的语言习惯,才能得到大家的接受和认可。

  第二,必须有功能强大的类库支持。一个成功的程序设计语言必须提高一个功能完善、强大的类库来支持其在各方面的应用。当然完全自行设计相应的类库是最好的方式,但这种方式成本比较高,而且需要时间较长。而英语程序设计语言经过长期发展,已经形成了比较完善成熟的类库,所以通过相应的机制使用英语程序设计语言中已有类库在目前来说是一种较好的选择,不过这种机制在语法上不能是简单的一一对应,而是一种意义上的对应,也就是说不能是直译,则应该是意译。具体表现形式上则是更符合中文的语法习惯。

  第三,应该是完全面向对象的。面向对象的软件开发方法已经在软件开发中得到广泛应用,并是一种经过实践检验的比较适合软件开发一种技术。虽然现在也有许多新型程序设计语言思想不断提高,但作为一种通用的中文程序设计语言,其应该支持完全面向对象的软件开发思想,并且应该更好的支持面向对象技术的各种要求。有效地和软件开发分析、设计阶段有机结合起来,才能得到广泛的应用。


易语言是相对较好的一种中文程序设计语言。该语言吸取了原来的一些汉语经验和教训,对汉语习惯有了较多的考虑,对一些语法部分做了更改,如将变量声明改为表格形式。并提供了一个较好集成开发环境,提供界面的可视设计,并以类流程图的方式显示源代码,由于这些的原因,其源代码采用特殊的格式存储,并需要使用特定的程序显示。这是其源代码的一个截图。
回复

使用道具 举报

发表于 2005-4-18 17:24:55 | 显示全部楼层
[ZT]今天第一次用易语言

今天第一次使用了易语言,把经过和感受写下来
打开一个例子程序
选择 程序|独立编译

跳出个对话框说>>>

很抱歉,只有在企业版中才支持编译程序及制作安装软件。

易语言编译的EXE文件短小精悍,请见易系统目录中的“tools\egrid.exe”文件,此为易程序“samples\易之表.e”编译后的结果。

<<<

跑到目录tools下去看那个egrid.exe,靠,果然很小,只有51.0 KB
想想罗云彬的那个卡通小闹钟也有49.0 KB,实在是匪夷所思。
然回去在目录samples下找到egrid.exe的源文件----易之表.e大小竟然有55.1 KB,比egrid.exe还大一些

我想总该有个支持库吧,就像vb那样用Visual Studio 6.0带的工具Depends查看egrid.exe,只引用了三个动态连接库
USER32.DLL
KERNEL32.DLL
ADVAPI32.DLL
都是windows自己的动态库
不会吧,这么神奇?想想,会不会是程序中用LoadLibrary显式加载的呢?
在一台没有安装易语言的机器上运行,跳出如下对话框>>>

未找到核心支持库或核心支持库文件已被损坏!

<<<
果然,用了支持库。
然后,就想找到这个支持库,看看到底有多大,system32下面找了半天没有找到,想想该不会是就在易语言的安装目录下边吧,发现一个叫lib的目录,可是里面没有找到任何.dll啊,有的都是一些扩展名为.fne和.run的文件,这是些什么东西呢?UltraEdit-32打开,好熟悉的一句话
This program cannot be run in DOS mode
明显是可执行的代码
呵呵,原来是这样啊,换了个扩展名装模作样
给lib目录换个名字,再运行egrid.exe
哈哈,又说“未找到核心支持库或核心支持库文件已被损坏!”了

好赖皮啊,这也要吹“短小精悍”?

可是随即一想,那mfc不也带个大大的支持库吗?看起来比易语言也强不到哪去
于是挺郁闷的,再想想,嗯,还是有区别的
C++的库也是用C++写的,而易语言的这个库却不是用易语言而是用C++写成的。
这就是最大的差别,也是C++和java,C#/vb.net,vb6最大的差别
它们的虚拟机无法用自身来编写,必须依靠C/C++,唉,我越来越喜欢C++了。

易语言的给我最深刻的印象就是
1.标识符,语句都是汉字
2.程序看起来像流程图

汉字的标识符,语句对我是别扭了点,但,或许习惯之后也不错
至于程序看起来像流程图,也不完全是
至少语句主要还是依靠汉字而不是图形来表达含义的
同那种可以直接以箱图的形式来表达控制流程的开发工具还是有明显区别的

几乎可以说是比vb还要vb,真不知道这是优点还是致命的弱点。

哦,还有,易语言的源文件显然不是人能读懂的普通文本格式,这样一定能免除许多语法分析的苦恼吧,依靠程序编辑时候执行的语法检查的确可以部分代替语法分析的作用,想必易语言的源文件的内容已经很接近最后的可执行文件了,编译的唯一作用就是加上一个可执行的外壳,然后这个外壳再加载支持库,由支持库中的代码来解释执行作为资源存在于可执行文件中的易语言编译之后生成的代码(也是基于堆栈的p-code么?)。
回复

使用道具 举报

发表于 2005-4-18 17:25:51 | 显示全部楼层
回复

使用道具 举报

sunman 该用户已被删除
发表于 2005-5-12 01:05:09 | 显示全部楼层
不容易,支持,软件产业国产化!
回复

使用道具 举报

aphay 该用户已被删除
发表于 2005-5-13 16:19:02 | 显示全部楼层
不了解到底有什么好处。
其实这位仁兄的说法有点像著名的设备控制预言Labview的模式。那里面都是图片,编程就只是连线罢了。所以,全换成中文也是一样的用。
Labview 参见 National Instrument
但是,核心的问题是:优势在哪里?
现在好像也不需要人人都能编写类似C++的程序吧,那么从普及的角度来说,并不实际。
而从支持的角度来说,又比不上以有语言的大量函数库和类库。
商业上要成功,必须要看能否抓住市场。从其描述来看,我并不觉得这个中文的编程语言有什么潜力。
个人觉得,很多东西过分强调技术,而忽略对市场的适应。比如Linux,叫嚣了那么多年要取代Windows,现在的结果是Windows的市场一点也没有减少,Linux只是取代了Unix的shichang份额罢了。这就是典型的只重技术,不重市场的例子。最记得的就是有人叫嚣:Linux界面不好,但是效率高呀,Linux就是给高手用的!
唉,真是一群“技术至上论”的扇子呀!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-11-15 03:05 , Processed in 0.260871 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表