编程语言差别大吗
编程和硬件有什么区别吗?
谢谢邀请。
硬件是由电路组成的,我们不妨称之为机器。人类是通过语言沟通的,硬件电路之间的沟通呢我们就可以称之为机器语言。
机器语言是由0-1组成的二进制代码,是硬件电路所能识别的。但不方便人类编程和助记,便出现了汇编语言。随着编程语言的发展,为了更方便人类编程和应用的需要就出现了类似c/c++这样的高级语言。
但万变不离其宗,硬件电路只能识别机器语言,即使是汇编和高级语言也需要编译成机器语言才能被硬件电路所使用。
最好的一个例子是计算机,我们习惯把它称为上位机(在下一节与下位机对比)。我们知道在计算机上可以用c/c++/python等语言来编写,但是它们的编译环境是不同的(需要用到不同的开发工具)。
这里的开发工具就是一个重点了,开发工具里面包括了咱们所使用语言的语法结构和库等内容,这也就区分了不同的语言。这些开发工具通过各自的开发环境把咱们编写的语言编译成机器语言,这样计算机的硬件电路就可以使用了。这样来看:硬件电路只能识别机器语言,至于我们所使用的不同的语言,只不过穿着不同的外衣,开发工具最终会把它们编译成机器所能识别的机器语言。
说了计算机作为上位机,咱们不妨在谈一下下位机,事实也是由一些硬件集成电路组成的,在这些硬件电路中又有了新的语言。根据烧写核心电路芯片的工作原理不同,出现了单片机——c/c++;FPGA——verilog/vhdl/c/c++等语言,但它们通过各自的开发环境,最终都编译成了机器语言来供硬件电路识别。
你与其说编程与硬件的区别,不如说软件和硬件的区别。至于用什么语言编写那就看最初的设计者给什么语言留有开发接口了。其实任何高级编程语言刨根问底都是二进制的机器语言。
其实机器只能识别二进制,说通俗点就是一个开关只有开和关两种状态。好比你家有个开关,控制着房间的灯光,你想让你的小伙伴在你爸妈不在家的时候来你家玩。那你跟你的小伙伴约定小伙伴在你家楼下看到灯打开了,那就是家里没人可以进来玩,如果是关着的就是家里有人。其实这就是一个简单的编程过程。当然这个开关你也可以跟你的小伙伴约定别的意思,比如开灯表示,我作业没做完。关灯表示作业写完了。。说到底无论你想表达什么意思,控制灯的开关只有两个状态是不会变的。就看你怎么跟人约定这个开关状态的意思。
编程是干嘛的?
首先编程是一个统称,编程的定义就是通过专门的语法结构组成指令去完成一个目标。
机器的最底层代码是0和1,也就是二进制。
这种二进制方式的实现其实是利用了硅的半导体特性,使得一个半导体晶体管能输出代表0的电压和代表1的电压,就是编程里的***或真。
打个比方说,一个二极管,我们给它加正向电压,二极管导通,这时用二进制表达就是“1”,给二极管加反向电压,此次二极管截止,二进制表达就是“0”。
无数个晶体管按照规划好的电路相连接,就能成为各种芯片或集成小电路。目前,现在的CPU芯片都是硅芯片。
0和1构成的二进制代码没有什么可读性,所以在硬件界面之上,又架构了一层编译机制,就是汇编语言,其中规定了基本语法格式,让编程人员可以通过指令访问芯片电路中各种运算功能。汇编语言就是直接对芯片进行编程,比如机器人工程就属于这类。 但是汇编语言也比较生涩,都是基于硬件的基本操作,想做一个大一点的项目非常困难,编程量巨大。
下图为汇编代码。
于是人们又开发出再高一级别的C语言,从C语言开始编程就很简单了,至少要比汇编简单好多倍,再说,也不用长时间再纠结硬件方面的问题了。
编程语言跟硬件是无关的。但编译器跟硬件相关,只要有硬件对应的编译器的就可以用对应的语言去开发,还可以交叉编译,比如可以在X86机器上编译ARM的[_a***_]。除了极少数单片机要用汇编,绝大部分硬件都能用C开发。至于为什么不能用python,是因为这种硬件环境下没有python的编译器(解释器)。
为何编程语言都是英文的?用中文编程不可以吗?
第一,中文占的字节数多,虽然计算机程序最终都是转换成二进制,但是在计算机最初低内存和低外存的情况下,真的是惜字如金的。
第二,计算机本身由美国人创造,历史无法改变,美国人不可能用中文。
现在编程软件很多都支持中文变量,编程软件也是中文,宏定义也可以中文,把关键字定义成中文就可以全程中文编程了,如果谁想要我可以做个宏定义头文件给他,不过能看懂我上面说的话的人是已经不需要中文了![灵光一闪][灵光一闪]
因为编程首先出现在美国,是美国人发明的所以是英文,中文也可以,易语言、易安卓,不管从什么角度考虑,都没必要,没有多大的经济效益!
1、编程是什么?就是为了解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。而计算机只能识别机器语言,其他语言不能直接识别、理解、执行。现在的高级语言如Java不能直接执行,都是通过源程序转换到机器目标程序的方式有两种:解释方式和编译方式。最终转换0101字节码指令。
2、中英文特点:中文二维度语言也是世界上最复杂的语言文字系统,平时用的就有3600多个字,是世界上至今唯一由象形文字发展而来的。经过几千年的发展语意,语音都不一样,同一个词环境不一样,标点不一样,声调不一样表达的意思都不一样。它是拼音文字,而英文是线性语言就简单多了,字母文字,子有26个英文字母,而且没有那么多意义。能很快的被机器识别,所以英文切合了线性程序。还有一个就是占位符的问题,一个英文字母代表着一个字符,而如果是一个汉字的话,代表着两个字符,这样一来的话,就相对比占内存。如果使用中文会出现很多乱码问题,英语全球语言,国际接轨问题!
3、英语水平与编程关系:很多不了解编程的觉得非得英文很好,在开发中能认识关键英文就可以了,其实大多数程序员的英语水平一般,英语水平不行确实会为程序员的职业生涯带来很多的麻烦,但写代码并不能提高你的英语水平。它们没有必然的关系,英文水平差的程序员在读英文资料时会有很大的障碍,但没听说过有程序员因为英语不过关就读不了代码,写不了代码。写代码用来的英文其实并不是通常意义的英文。英文不好并不会成为你编程路上最致命的障碍。
中文编程易语言,易安卓也是可以实现的,不过效率和成功率要比使用英文低很多,而且工作量是非常大的。而且没有多大经济效益!同样的编程,使用英文的程序员做的明显比使用中文的程序员要快,并且错误率也低。此外和程序相关的很多东西,包括协议等等,都是由西方人先发明的。如果我们想要用中文,就需要自己写出配套的规则。不过西方的规则已经被普及了,我们想要改变是非常难的,直接学习反而更快。综上,程序员们在编程时更喜欢使用英文。虽然使用中文也可以写出编程,但是总体来说,还是英文更加方便。毕竟大家看着密密麻麻的用中文写的编程,在检查错误时,也会非常麻烦。如果出现bug,修改时会更加麻烦。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/10276.html