今天开站啦

程序员编写的代码为什么可以控制计算机硬件工作?汇编语言和高级编程语言的由来

科普知识 pop君 72℃ 0评论

计算机本质上是数字电路组成的计算机器,只有电信号才有可能驱动电路工作,那为什么程序员编写的代码可以控制计算机工作呢?代码只是一串字符而已。

在回答这个问题前,先想一下,程序员编程时,是否要严格遵守某种编程语言的语法呢?答案是肯定的,每种高级语言,无论是C语言,还是java、python、php,都是有自己的关键字和语法结构的。这些关键字是设计编程语言时约定的,也就是说,程序员编写的代码是按照某种约定规则进行的。这就可以回答上面的问题了,假设一组数字电信号可以完成“蜂鸣”动作,既然它是数字信号,当然可以用数字表示它,下次程序员输入这组“数字”,就相当于输入了让计算机做“蜂鸣”动作的数字电信号,这就是机器码编程

举个例子,假设有以下 5 盏灯。灯由开关控制着,只有开关两种状态。我们约定 1 表示开灯,0 表示关灯。那么,当电灯管理员得到“01000”这样一组数字时,他就知道了应该开第二盏灯,其他的关掉。

机器码编程是不方便的,程序员想要完成某种计算功能,往往需要从非常庞大的指令表查找到相应的数字功能码。因此,后来人们设计了很多助记符,用有意义的单词来表示机器指令,这就形成了汇编语言

就像上面的例子中,我们约定用 set_light_2 来表示 01000,那么,下次我告诉电灯管理员:“set_light_2”,他就明白了应该怎样开关灯。

顺着这样的思路,更复杂的符号和结构被设计成有意义的单词,高级语言如C语言,C++语言出现了。所以,说代码控制计算机不是特别恰当,因为代码只是我们约定的与电信号对应的符号而已。事实上,计算机并不能直接执行代码,代码要首先翻译为计算机认识的机器码(即数字信号序列),这一过程就叫做编译

当然,现在还有一些脚本语言,比如 python,它是依赖解释器逐行执行的。不过归根结底,代码要首先翻译为计算机认识的机器码(即数字信号序列)。

转载请注明:pop快讯 » 程序员编写的代码为什么可以控制计算机硬件工作?汇编语言和高级编程语言的由来

喜欢 (1)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址