本节书摘来自华章社区《C语言程序设计:问题与求解方法》一书中的第2章,第2.1节高级程序设计语言和编译程序简介,作者:何 勤,更多章节内容可以访问云栖社区“华章社区”公众号查看
2.1 高级程序设计语言和编译程序简介
计算机发明的早期,人们都是用一条条的指令来编写机器语言程序的。各种指令的操作码和书写格式很难记忆;而且程序一旦出现错误,将很难从0和1组成的海洋中查找出这些错误。此外,为一种类型的计算机编写的程序很难移植到另一台不同类型的计算机上运行。
一条指令所能够做的事微不足道。这就意味着:用机器语言来编写程序的程序员,必须将他的整体编程思路细化、分解,直到成为计算机能够执行的、微观的、一条条的指令为止。这使得用机器语言来编写大型程序变得极其困难。
人们能否使用一种宏观的、与具体计算机类型无关的、人类比较易于掌握和理解的由“字符”序列组成的“程序”,来具体“指导”计算机自动生成机器语言程序,变成一件极为重要和迫切的任务。高级程序设计语言在这种迫切的需求下诞生了。
高级程序设计语言是一种人们比较容易掌握的、无二义性的、“将代数式和英语符号组合在一起的独立于机器的编程语言”,本书后面经常简称为高级语言或高级编程语言。
C语言、C++语言、Java语言、C#语言、Pascal语言和Basic语言都属于高级编程语言。据统计,使用高级语言编程比用低级语言编程的效率大约高出5~20倍。
所谓编译程序,是一种由计算机专家编写出来的机器语言程序,它可以把人们用某种高级语言编写的程序(称为源程序)翻译加工成一个二进制机器语言程序。高级语言源程序是不能直接在计算机上运行的。
【问题】在不同类型计算机上运行的C语言编译程序是否相同?从功能和形式两方面考虑。