计算机概论6

linux
linux
Author
Published

Sunday, February 2, 2020

机器语言程序与编译型程序

我们在需要CPU工作时,就得要参考其内部指令集的内容,然后编写让CPU能够读得懂的脚本让其去执行,这样CPU才能执行我们所给的任务。

这就带来了几个问题:

  • 程序开发者必须要了解机器语言:机器只认识0和1,因此开发者必须要学习写机器能直接看懂的语言,而这个毫无疑问,难度很大

  • 必须要了解所有硬件的相关功能函数:开发者当然需要参考机器本身的功能去编写相应的程序代码,而如果每个开发者都去了解系统的所有硬件,这个工作量实在太大

  • 程序具有不可移植性:每个CPU都有其独特的指令集,每个硬件都有其功能函数,因此不同平台之间程序代码当然无法直接通用

为了解决这些问题,计算机科学家设计出一种人类能看得懂的程序语言,然后创造一种编译器将这些人类写的程序语言转译成为机器能看得懂的机器语言,如此一来,我们修改与编写程序就容易多了。目前常见的编译器有C、C++、Java、Fortran等。

高级程序语言的程序代码是较容易查看的,这样我们就将程序的编写修改问题处理完毕。问题是,在这样的环境下面我们还是得要考虑整体的硬件系统,从而来设计编写程序。举个例子,当你需要将运行的数据写入内存中,你就要自行分配一个内存区块出来让这些数据能够填充上去,所以你必须要去了解内存的地址是如何定位的原理,这样一来,程序的编写又会变得麻烦。

为了要解决硬件方面老师需要重复编写一些程序的问题,所以有了操作系统的出现。