以文本方式查看主题 - 中华农历论坛 (http://bbs.nongli.net/index.asp) -- 历法知识 (http://bbs.nongli.net/list.asp?boardid=2) ---- [原创]对寿万年历编者许老师关于汉语编程三提问的浅见 (http://bbs.nongli.net/dispbbs.asp?boardid=2&id=16425) |
-- 作者:秦汉昌 -- 发布时间:2008/12/26 12:32:00 -- [原创]对寿万年历编者许老师关于汉语编程三提问的浅见 许老师: 您好,对于您提的问题,我无法确切地回答您,因为我也是汉语编程的初学者。我是这么认为的,目前汉语编程对于英编来说,也没有多大的优势,仅仅是可用而已。我也不排除汉编是在西方编程模式下发展而来的,但汉编也有它的特色,完全可以朝着我们民族文化的方向发展。如果我们觉得汉语编程不好用,其实也可以发挥自己的创造力来完善它。如果我们不去完善,不利于弘扬我们的华夏文化。 其实,对于英编,汉编,仁者见仁,智者见智,各有说辞,只要愿意花时间来思考这个问题,不管是正方观点还是反方观点,都有利于汉编向前发展,从量的变化到质的飞跃,不断超越。 我个人并没有认为汉编如何优越于英编,我也不认为目前的汉编如何优秀,然而,我相信,汉编一定会有一个美好的未来。我是这么想的,我们不可能,世世代代用英语来编程,如果目前没有汉编,也会有人来去探索。我们现在已经在汉编方面有了一定的发展,就意味着后继者可以批判地继承前人的成果,我们学习汉编,不仅仅是学习目前的汉编技术,更是为了发扬汉语编程计算机技术。并不是要向大家推荐一门实用的高效的能带来可观的经济利益的技术,而是想和有识之士在传承华夏文明方面进行探讨和勉励,显然,如果汉编已经成为世界上一流的计算机编程语言,那还需我来介绍吗?我是出于对汉编计算机技术的担心而多说几句而已。 学习汉编,不一定是目前汉编的支持者,但他一定是华夏文化爱好者,民族自信者,或许,有一天,他能发明一种与目前汉编迥异的汉语程序语言。 虽然本人系汉语编程初学者,缺泛对汉编的祥实了解,暂时还没有发言权,但是,为了表示我的诚意,我对您(许老师)的三个问题发表一下我的浅见: 问题一:关于汉编与英编的程序结构问题,虽然,我对英编的结不甚了解,我仅仅看过几遍关于VB编程的书。但初看汉语编程, 脑海也会浮现出汉编与某种英编结构相似的感性反映;当我们稍加了解汉编,多运用几次汉编进行应用操作时,一定能体会到汉编与英编程序的某些结构虽然貌似相同,却实质运用迥异。汉语编程中的“如和 而和 而和 其余则 而后 ”确实是一个选择结构,从字面上看,确实和IF的意思近义,由我对IF句式的使用不熟,无法深究其异同。 汉编应用的过程就是不断地编写词语,形成一部符合个人使用习惯的汉语词典的过程。就像我上面的程序,可能用英编一二句话就可以编好,用汉编虽然多了几个汉字,但这样的事情只需做一次即可,只要编好了那个词,那个词的功能就永远存在,以后只要把它放入词典,编好的词语就可以无限次的应用。汉编若发展起来了,估计我们会像编康熙字典或辞海那样,收录民间和官方常用的汉编词语,编写一套收集各种功能的词汇。显然,汉编的方向是向自然语言发展的,汉语编程就像写文章,不但要求表达某种意义,而且要求表达方式通俗易懂,能被大众理解。当然,讲这些,并不是说目前汉编已经做得很好了,而是说汉语是一种表意语言,没有语法约束,与计算机原始语言有相似的地方,适合计算机,我们的计算机语言向自然语言的过渡已开始了。 问题二:关于汉编与英编程序算法的运算速度问题,我认为不存在绝对的快或慢,都有一个优化的过程,都可以通过某种优化让它变快。我想,汉编上面的语句,与你提出的查表法应该是有不同之处的,汉编是从字到词,从词到句,又从句到词,从词到句,反复衍生的,如果上面那个词的结构运算速度太慢的话,那建立在那个词之上的其它词不就运算更慢,如果由其衍生的词过多,不就会导致有些词不能用,汉语编程的词典式架构也就不具备科学意义。而实际应用中,我们发现汉编的词典式架构是一种优化,而且更有利于提高速度。老实地说,对于运算速度问题我不知道汉编是怎么解决的,但这个问题确实被解决了,否则的话,某些军事项目用汉语编程来做,是危险的,更不用说获奖接受军事界表章。 问题三:关于汉编的数学表达问题,原则上讲,汉语编程是不分数学表达式和文学表达式的,因为汉编采用我们古代数学上的前缀表示法和建立在珠算、数筹结构上的数摞运算,若想知道汉编是怎样来进行数学表达的,必须了解汉编的数摞知识。虽然汉编不用中序表示法,但也有为了科学计算的需要设置某个功能来专为数学运算提供,比如,数组(数组是汉语编程的一种数据类型)等。 我用汉编的方法之一来表达您提供的代数式: (((a+b/2)+c)/3+d)/8 汉编表达如下: a b + 2 / c + 3 / d + 8 / 从这两种表达方式可以看出,我们古代的前缀表达无需括号,符合计算机的运算,可以提高运算速度。后缀表达符合现代人(不一定符合我们古代计算的习惯)的习惯,通过括号定义运算的先后顺序,使之容易理解,但在运算速度上不如按计算机的运算顺序进行的前缀表达。 结语:汉语编程对天文算法有何实际意义,汉语编程对夏历的计算机编撰工作有何方便之门。这两点,我只能略说其一,我们古代《尚书》里面就记载了具有很高水平的天文数据: 帝曰:“咨!汝义暨和,期三百有六旬有六日,以閏月定四时,成岁。” 我们在天文学方面长期领先于世界,当然,有传承和弘扬的必要,汉语编程是实现古代天文算法的最佳语言。现代天文算法不与我们传统的天文算法相结合,是无法实现夏历的完美性的。 本人暂说这些,拙见如有不当之处,请见谅。 此致 敬礼 您的学生:秦汉昌 夏历戊子年十月二十九日 问题一:关于汉编与英编的程序结构问题,虽然,我对英编的结不甚了解,我仅仅看过几遍关于VB编程的书。但初看汉语编程, 脑海也会浮现出汉编与某种英编结构相似的感性反映;当我们稍加了解汉编,多运用几次汉编进行应用操作时,一定能体会到汉编与英编程序的某些结构虽然貌似相同,却实质运用迥异。汉语编程中的“如和 而和 而和 其余则 而后 ”确实是一个选择结构,从字面上看,确实和IF的意思近义,由我对IF句式的使用不熟,无法深究其异同。 汉编应用的过程就是不断地编写词语,形成一部符合个人使用习惯的汉语词典的过程。就像我上面的程序,可能用英编一二句话就可以编好,用汉编虽然多了几个汉字,但这样的事情只需做一次即可,只要编好了那个词,那个词的功能就永远存在,以后只要把它放入词典,编好的词语就可以无限次的应用。汉编若发展起来了,估计我们会像编康熙字典或辞海那样,收录民间和官方常用的汉编词语,编写一套收集各种功能的词汇。显然,汉编的方向是向自然语言发展的,汉语编程就像写文章,不但要求表达某种意义,而且要求表达方式通俗易懂,能被大众理解。当然,讲这些,并不是说目前汉编已经做得很好了,而是说汉语是一种表意语言,没有语法约束,与计算机原始语言有相似的地方,适合计算机,我们的计算机语言向自然语言的过渡已开始了。 问题二:关于汉编与英编程序算法的运算速度问题,我认为不存在绝对的快或慢,都有一个优化的过程,都可以通过某种优化让它变快。我想,汉编上面的语句,与你提出的查表法应该是有不同之处的,汉编是从字到词,从词到句,又从句到词,从词到句,反复衍生的,如果上面那个词的结构运算速度太慢的话,那建立在那个词之上的其它词不就运算更慢,如果由其衍生的词过多,不就会导致有些词不能用,汉语编程的词典式架构也就不具备科学意义。而实际应用中,我们发现汉编的词典式架构是一种优化,而且更有利于提高速度。老实地说,对于运算速度问题我不知道汉编是怎么解决的,但这个问题确实被解决了,否则的话,某些军事项目用汉语编程来做,是危险的,更不用说获奖接受军事界表章。 问题三:关于汉编的数学表达问题,原则上讲,汉语编程是不分数学表达式和文学表达式的,因为汉编采用我们古代数学上的前缀表示法和建立在珠算、数筹结构上的数摞运算,若想知道汉编是怎样来进行数学表达的,必须了解汉编的数摞知识。虽然汉编不用中序表示法,但也有为了科学计算的需要设置某个功能来专为数学运算提供,比如,数组(数组是汉语编程的一种数据类型)等。 我用汉编的方法之一来表达您提供的代数式: (((a+b/2)+c)/3+d)/8 汉编表达如下: a b + 2 / c + 3 / d + 8 / 从这两种表达方式可以看出,我们古代的前缀表达无需括号,符合计算机的运算,可以提高运算速度。后缀表达符合现代人(不一定符合我们古代计算的习惯)的习惯,通过括号定义运算的先后顺序,使之容易理解,但在运算速度上不如按计算机的运算顺序进行的前缀表达。 结语:汉语编程对天文算法有何实际意义,汉语编程对夏历的计算机编撰工作有何方便之门。这两点,我只能略说其一,我们古代《尚书》里面就记载了具有很高水平的天文数据: 帝曰:“咨!汝义暨和,期三百有六旬有六日,以閏月定四时,成岁。” 我们在天文学方面长期领先于世界,当然,有传承和弘扬的必要,汉语编程是实现古代天文算法的最佳语言。现代天文算法不与我们传统的天文算法相结合,是无法实现夏历的完美性的。 本人暂说这些,拙见如有不当之处,请见谅。 此致 敬礼 您的学生:秦汉昌 夏历戊子年十月二十九日 [此贴子已经被作者于2008-12-26 20:17:44编辑过]
|
-- 作者:叶风扬 -- 发布时间:2008/12/26 14:32:00 -- 其实什么语言都无所谓,因为语言的本质是一样的,关键是要有编译器!!! 编译器决定了语法逻辑的实现,同样的E文,不同的语法逻辑就有不同的编程语言。 编程语言中有没有使用中文和语法逻辑的实现毫无关系。 所以关键是要有一个好的编译器来实现在编程语言中使用中文的问题,而不是如何用中文编程的问题!!! |