汇编都是英文的,其他变成汉语有什么用

三.汇编都是英文的,其他变成汉语有什么用

下面来介绍下语言的基础,(这部分主要是给对编程不是很了解的人士看的,有些地方不严谨,但是只要说明意思就可以了)

我们先看语言基础,我们平时看到的电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。

计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。目前通用的编程语言有两种形式:汇编语言和高级语言。

作为机器语言,其核心是如何控制内部运算,对于不同的CPU架构体系,其机器语言也会不同。表现出来的就是指令集,CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。

汇编语言的实质和机器语言是相同的,只不过指令采用了英文缩写的标识符,更容易识别和记忆。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,由于汇编语言只是机器语言的符号化,虽说相对简单了,但是还是得要求人们学习相应的内部结构,对于复杂的内部结构,有很大一部分人还是无从着手的.所以就出现了高级语言,当程序员用高级语言指令写完源程序后,只需用编译器编译就可运行了.此时编译器所做的工作就是把高级语言指令翻译成汇编语言(机器语言。.

对于软件开发者来说,他需要考虑的是CPU的指令集,也就是CUP指令集的汇编指令,只有针对这些指令才能开发出相应的程序来,举例来说,你在基于英特尔CUP的汇编指令上开发的程序,就不能在苹果电脑上运行。而这些汇编指令集都是CUP等硬件厂商开发提供的,目前我们知道CUP的大部分厂商都是海外公司,他们的指令集(都是汇编语言写成)都是英文的。

高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,这样就大大简化了程序中的指令。高级语言如目前流行的VB、VC、FoxPro、Delphi等,高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。

通常而言,人们写程序有两种方式,
一是直接用汇编语言写,然后翻译成机器语言。
二是用高级语言写,然后编译器翻译成汇编,最后翻译成机器语言。

也就是说,程序语言的编写分为三个层次。

第一层次(最低层次)是机器语言  其语言都是01.
第二层次是汇编语言(使用不同的CUP指令集)其语言都是英文
第三层次是高级语言 

我们会发现一点,不过你采用什么语言编写,最终的都是要编译成汇编语言然后到机器语言,最终都是要调用CUP指令集。(这里需要指出的是,任何汇编指令集,都是硬件开发厂商开发的,而不是什么程序语言公司开发的。)就目前而言,这块都是英语,目前国内有人推出的汉语汇编编程,徽剑觉得啼笑皆非,就汇编语言而言,是直接对CPU等硬件操作的,必须依赖各种指令集,而这些厂商,有几个提供汉语指令集?

在没有硬件厂商提供的汉语指令集前提下,所谓的汉语汇编是不是“鸡对鸭讲”?这么一来是不是要有人把英文指令集翻译成汉语?那跟汉化有什么区别?

这样一来任何人都可以开发出一套汉语汇编来,很简单,找一套汇编编译器,增加一个翻译过程,当输入汉语时,将其翻译成对应的英文汇编程序,然后再翻译成机器语言,或者直接采用替换方式,当输入英文的时候,将其翻译成(英文对应)的机器语言。

任何汇编指令集,都是硬件开发厂商开发的,而不是什么程序语言公司开发的。让程序开发者利用汇编语言来操作他们的硬件。除非硬件厂商提供直接针对汉语的指令集,否则任何所谓的汉语汇编都是,翻译器加汇编编译器。

也就是说,在汇编领域,目前并未有任何厂商提供汉语指令的指令集,那么意味我们所谓的“先进的汉语汇编”就不是什么自主开发的东西。那么这里有一点就可以明了,就是目前的真正的汇编都是英文的。汉语汇编其实只是“假汇编”。

四、其实汉语编程很好创造出来,但是却没什么用

前面谈到的那个“汉编”事实上是个骗子,下面徽剑要说说不是骗子的汉语编程,以易语言为例。

易语言是曾经和朱崇君一起开发CCED的吴涛于 2000年初开始开发的,这是一款Windows下全中文可视化编程语言,最新版本为 4.0。易语言自发布后,以其类似于VB的风格和彻底中文化的特点赢得了不少电脑爱好者的青睐,

易语言的特点就是用汉语来写,原来编写程序输入的是英文,现在改成输入汉字了,我们来看段易语言程序:

引入 apr;
公开 类 启动类
{
 公开 静态 启动()
 {
  整数 数量;
  控制台.输出行("请输入将要生成的随机数个数:");
  数量= 控制台.输入整数();
 
  随机数集合.显示(数量);
 
  随机数集合.显示();
 }
}
公开 类 随机数集合
{
 公开 静态 显示(整数 生成个数=10)
  字节集 临时字节集;
  整数 I,J;
  内存池 局内存池 = 创建 内存池;
  控制台.输出行("下面开始生成"+生成个数.到文本+"个随机数====>");
 
  计次循环(生成个数,J)
  {  
   临时字节集=随机数.生成随机数(1,局内存池);
   I=字节集类.到整数(临时字节集);
   控制台.输出行(整数类.到文本(I));
  }
  控制台.输出行("<========随机数已生成");
  控制台.输入文本();//暂停屏幕滚动用   
 } 
}

事实上,徽剑看不出这里有什么优势,懂中文的人似乎也没几个能明白。有人说易语言似乎对于英语不好的人有帮助,其实很荒谬,因为如果但是写程序部分所使用的英文数量是很少的,常用的也就几十个英文单词,一般情况下也就几百个英文单词。也就是说,如果仅仅考虑到“写程序”这块而言,会个三五百单词足够,这点数量的单词相信没有几个人学不会。

我们必须看到而真正出问题的在于“接口”上面,前面说了,目前的操作系统、几乎所有的各种应用程序都是英文编写的,所谓的中文版只是在用户界面做了汉化,这样一来,用汉语编写的程序如果要在操作系统上运行、或者与其他程序交换数据,不可避免的遇到英文代码,特别是操作系统,比如windows下的API等而这些接口又是成千上万,如果没有很好的英文是很头疼的。

更为甚者,这些接口的文档大多都是英文编写,没有好的英文水平是阅读不了的。也就是说如果你想成为程序高手,英文是必须解决的拦路虎。也许有一天有了全中文的硬件指令集、全中文代码的操作系统,那时候我们就可以说用中文编程了。就目前而言对于专业程序员而言,汉语作为程序设计的描述语言并没有什么实际意义。

如果仅仅是考虑普通用户不懂英文,不会“写程序”,那么徽剑提出一个更为简单的方法:“汉化”,我们可以分为这么几步走:

第一步,对汇编编程器进行汉化,使其在输入汉语汇编指令时自动对应相应的机器语言。

第二步,对诸如C、C++等编译器进行汉化,将其内部对应的英文指令替换成汉语,这样一来在输入汉语C、C++程序时可以直接编译。

第三步,编译C、C++等的教材,将其中英文描述换成规范的汉语程序词汇。同时大量翻译各种英文指令书籍,便于中文编程人员查找。

第四步,创立汉语操作系统,找一套开放源码的LINUX,修改其编译器,将编译器输入对应的英文换成汉语,然后将全部源代码翻译成汉语,再用编译器编译一下。当然个别地方要考虑到汉语的编码特点修正一下。徽剑计算,依照几十名翻译人员,差不多一年可以完成,看看一套全面的汉语代码操作系统出来了,

看到没有,就这么几步,连强大的C、C++等都成了汉语编程语言了。如果想傻瓜点,也可以啊,跟微软合作、跟SUN合作,可以把.net、JAVA全部汉化了,想来他们也没有什么反对的。

有人说:“汉语编程的优点概括为以下几个方面:首先是安全系数高。汉语编程是我们用汉语实现的人机对话,我们掌握所有的源代码,目前尚未发展能与之对抗的病毒,非常有利于保证计算机内的机密安全。”

这纯粹胡扯,目前的计算机语言,特别是诸如C、C++语言本身都是免费的、开放的,任何人都可以学习、使用。就像相对论不是中国人发现的,但是我们一样用,这只是一种知识而已,如何在这种知识上开发成果来,那是另外一回事。一种知识是谈不上安全的。我们并不因为飞机是外国人发明的,我们自己造飞机就泄露了什么机密。假如我们完全用自己的汉语编程,难道国外特工就不会学吗?难道国外的信息部队就不会针对这个开发病毒吗?而且还是一开一个准,因为你是单独的,与众不同,开发针对你的不用担心自己受影响。


有人说:“汉语编程是效率高。汉语编程的原理是建立在汉字的本身优势上,汉字看起来很复杂,但表达的意义却很丰富。且在键盘上输入汉字远比输入英文快,用汉语编程写出的程序远比其他语言篇幅要短很多。”

这里同样也是胡说,请问一下,当你在键盘上输入“if”快还是“如果”快,是输入“end”快还是“结束”快?要知道在编程的英语不是日常的英语,完全可以说是一种新的人类语言,在键盘上输入汉字只是在总的信息量上比英文多,而不是单位数量汉字敲击键盘的次数比英文少。徽剑做过简单测试,发现以C++为例,如果把C++翻译成汉语输入,单位时间内的击键次数是英文的很多倍。


有人说:“汉语编程是简单易学,便于普及。只要认识汉字,上到九十九下到刚会走,都可以学习和使用。”

这更是胡说八道,如同前面分析的那样,用汉语“写程序”是方便了,可是还有那么多英文接口、英文文档怎么办?再说了,有必要来个全民编程吗?美国普通人也没几个会编程的。而且我们看看上面的易语言代码,光是认识汉字的人明白吗?


我们还是看一段评论:“从理论上讲,汉语编程应当是一种以汉语为描述语言的计算机程序设计语言,在程序设计中体现了汉语语法和逻辑,符合中国人的语言习惯和思维方式,而不是英文程序设计语言的简单汉化,或者是简单地营造一个汉语编程环境。很遗憾的是,目前我们所能见到的汉语编程语言,就只不过停留这个层次上,并没有取得任何实质性的突破。事实上,从2001年到2002年间,北京市科委对汉语编程项目进行了5次评审,评审的结果是超过50%的专家并不认可汉语编程的可行性。”

五、中国人编程难的问题和出路在那里

下面我们看看中国人编程难难在那里?

徽剑以一个拿到(说混到也可以)的系统分析员证书的编程者的亲身体验,中国人编程难难在难在接口语言和技术资料语言上,而不是“写程序”的语言上。学过编程的朋友都知道,程序中绝大部分都是逻辑和数学表达式,与采用英语还是汉语来描述的关系实质并不大。

就程序而言,不管学习编程的是谁,是中国人,还是美国人,有一个共同的难点。那就是计算机语言不是我们人类日常交流的语言,越是效率高的编程语言,越是离人们日常生活交流语言较远。这点上是共同的。

而中国人真正不利之处就是如果英文不熟练,无法阅读技术文档(诸如C++、Java中上万个用英文的库函数也不是需要编程者都得记住的东西),无法理解大量的接口等英文信息。而这一点就不是简单用汉语编程那么简单了。世界上最著名的软件公司,大多是母语为英语的国家。印度现在之所以成为世界第二软件大国,因其母语是英语,这样一来在阅读和学习过程中接触相关技术就没有什么障碍。

依照我们目前的发展条件,短期内不大可能出现诸如硬件、操作系统等的全国产化,这样一来如果我们还是热衷于所谓的用“汉语写”程序的话,就未免搞笑了。其实我们来看看编程的发展历史:

最早期,直接对硬件编程,使用机器语言和汇编语言。
后来,出现高级语言,在一定程度便于人们的理解了。
再后来,出现面向对象的程序开发,使得程序开发进一步容易理解和实施。
现在流行的是面向对象的可视化程序开发,每个语言本身都是“不可视”的,仅仅是语言而已;所谓“可视化”不过是编程工具所提供的功能,让你在编窗口等一些“看到着”的程序时可以使用拖拽等可视化操作。如同C++是门语言,而vc++只是一个可视化编程工具,vc++实现了C++的可视化编程。

有过较长期编程经验的老程序员都会有这演感受,在十年前写C++语言程序是很累的(那时国内还很少大家都是用C较多),现在用C++的话,可以用VS2005多方便啊。诸如.NET代码生成器有助于快速应用程序开发。

现在甚至不用写代码就可以生成很多小点的程序,这在十年前、二十年前是不可想象的,同样再过十年,不写代码生成很多今天看来是很大的程序也不是难事。所以徽剑以为在未来,程序员编程“写”的代码数量将会越来越少,程序员更多的考虑的是程序的结构和性能,然后动动鼠标,输入几个数据,一套程序就编好了。

在这种情况下,更多的内容被封装了,到那时,才可以说不懂英文也照样编程。这才是发展的趋势。

至于底层部分,那就只有等到国产的硬件出来了,推出大量中文指令集,才有实现真正汉语底层开发的可能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中文汇编语言源码汉文库名include Include\user32.incincludelib Lib\user32.lib -----以上为库申明-----信息框MessageBox此段为说明第1段为首申明第2段为对应的库申明分割请用“-----申明  分割-----”空格去掉-----申明分割-----创建窗口CreateWindowEx此物参数分别为:扩展风格,类名,窗口标题,风格,屏幕横坐标,屏幕纵坐标,宽度,高度,父窗口句,菜单句,程序句,参数-----申明分割-----显示窗口ShowWindow2个参数  窗口句柄,显示方式简单的说 0隐藏,1显示  SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口,即使拥有窗口的线程被挂起也会最小化。在从其他线程最小化窗口时才使用这个参数。  SW_HIDE:隐藏窗口并激活其他窗口。  SW_MAXIMIZE:最大化指定的窗口。  SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。  SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。  SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。  SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO 结构是由启动应用程序的程序传递给CreateProcess函数的。  SW_SHOWMAXIMIZED:激活窗口并将其最大化。  SW_SHOWMINIMIZED:激活窗口并将其最小化。  SW_SHOWMINNOACTIVE:窗口最小化,激活窗口仍然维持激活状态。  SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。  SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。  SW_SHOWNORMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。-----申明分割-----上载窗口UpdateWindow1个参数 窗口句柄-----申明分割-----取进程PIDGetWindowThreadProcessId.参数 窗口句柄, 整数型.参数 进程ID, 整数型, 传址, 提供一个整数型变量存储取到的进程PID
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值