计算机软件是指在计算机硬件上运行的各种程序和相关的说明文件。这里所说的程序是指用某种特定的符号系统(计算机语言)对被处理的数据和实现算法的过程进行的描述,也就是用于指挥计算机执行各种动作以便完成指定任务的指令的集合。在程序的编制和维护中,必须对程序做必要的说明,并整理出有关的资料。在运行程序时,有时还需要输入必要的数据。因此计算机软件就是可以指挥计算机进行工作的程序和程序运行时所需要的数据,以及与这些程序和数据有关的文字说明和图表资料。在这里,有必要对程序和计算机语言作简单说明。
1.程序
程序是按照一定顺序执行的、能够完成某一任务的指令集合。计算机的运行要有时有序、按部就班,需要程序控制计算机的工作流程,实现一定的逻辑功能,完成特定的设计任务。Pascal之父Niklaus Wirth认为“程序=算法+数据结构”。其中,算法是解决问题的方法,数据结构是数据的组织形式。人在解决问题时一般分为分析问题、设计方法和求出结果三个步骤。相应地,计算机解题也要完成模型抽象、算法分析和程序编写三个过程。不同的是计算机所研究的对象仅限于它能识别和处理的数据。因此,算法和数据的结构直接影响计算机解决问题的正确性和高效性。
2.程序设计语言
在日常生活中,人与人之间交流思想一般是通过语言进行的,人类所使用的语言一般称为自然语言是由字、词、句、段、篇等构成。而人与计算机之间的“沟通”,或者说人们让计算机完成某项任务,也需用一种语言,这就是计算机语言,也称为程序设计语言,它由单词、语句、函数和程序文件等组成。程序设计语言是软件的基础和组成。随着计算机技术的不断发展,计算机所使用的语言也在快速的发展,并形成了体系。
(1)机器语言
在计算机中,指挥计算机完成某个基本操作的命令称为指令。所有指令的集合称为指令系统。直接用二进制代码表示指令系统的语言称为机器语言。
机器语言是直接用二进制代码指令表达的计算机语言。机器语言是唯一能被计算机硬件系统理解和执行的语言。因此,它的处理效率最高,执行速度最快,且无需“翻译”。但机器语言编写、调试、修改、移植和维护都非常烦琐,程序员要记忆几百条二进制指令,这限制了计算机软件的发展。
(2)汇编语言
为了克服机器语言的缺点,人们想到直接使用英文单词或缩写代替晦涩难懂的二进制代码进行编程,从而出现了汇编语言。
汇编语言是一种把机器语言“符号化”的语言。它和机器语言的实质相同,都直接对硬件操作,但汇编语言使用助记符描述程序,例如,ADD表示加法指令,MOV表示传送指令等。汇编语言和机器语言指令基本是一一对应的。
相对机器指令,汇编指令更容易掌握。但计算机无法自动识别和执行汇编语言,必须进行翻译,即使用语言处理软件将汇编语言编译成机器语言(目标程序),再链接成可执行程序在计算机中执行。汇编语言的翻译过程如图2-12所示。(www.xing528.com)
图2-12 汇编语言的翻译过程
(3)高级语言
汇编语言虽然比机器语言前进了一步,但使用起来仍然很不方便,编程仍然是一种极其烦琐的工作,而且汇编语言的通用性差。人们在继续寻找一种更加方便的编程语言,于是出现了高级语言。
高级语言是最接近人类自然语言和数学公式的程序设计语言,它基本脱离了硬件系统,如Pascal语言中采用“Write”和“Read”表示写入和读出操作,采用“+”“-”“*”“/”表示加、减、乘和除。目前常用的高级语言有C++、C、Java、Visual Basic等。
用高级语言编写的源程序在计算机中是不能直接执行的,必须翻译成机器语言程序。通常有两种翻译方式:编译方式和解释方式。
编译方式是将高级语言源程序整个编译成目标程序,然后通过链接程序将目标程序链接成可执行程序的方式。将高级语言源程序翻译成目标程序的软件称为编译程序,这种翻译过程称为编译。编译过程经过词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等六个环节,才能生成对应的目标程序,目标程序还不能直接执行,还需经过链接和定位生成可执行程序后才能执行,编译过程如图2-13所示。
图2-13 高级语言程序的编译过程
解释方式是将源程序逐句翻译、逐句执行的方式,解释过程不产生目标程序,基本上是翻译一行执行一行,边翻译边执行。如果在解释过程中发现错误就给出错误信息,并停止解释和执行,如果没有错误就解释执行到最后。常见的解释型语言有Basic语言。
无论是编译程序还是解释程序,其作用都是将高级语言编写的源程序翻译成计算机可以识别和执行的机器指令。它们的区别在于:编译方式是将源程序经编译、链接得到可执行程序文件后,就可脱离源程序和编译程序而单独执行,所以编译方式的效率高,执行速度快。而解释方式在执行时,源程序和解释程序必须同时参与才能运行,由于不产生目标文件和可执行程序文件,解释方式的效率相对较低,执行速度慢。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。