无论是第二代的汇编语言、第三代的高级语言还是第四代的面向问题的语言,用它们编制的源程序都不能在计算机上直接运行,而需要借助于语言处理程序“翻译”成目标代码后,才能够被机器执行。因此,程序又有源程序和目标程序之分。
源程序:用汇编语言或高级语言编制的程序叫源程序。其中,用汇编语言编制的程序叫汇编语言源程序,用高级语言编制的程序叫高级语言源程序。计算机不能直接识别和执行这些源程序,只有将源程序“翻译”成目标代码后,计算机才能识别和执行。
目标程序:目标程序是指源程序经过翻译加工后得到的机器语言程序,可由计算机直接执行。目标程序也被称为目标代码、目的程序或结果程序。
高级语言源程序计算机无法直接识别,必须通过“翻译程序”翻译成机器语言形式的目标程序,计算机才能识别和执行。这种“翻译”通常有两种方式,即编译方式和解释方式。
编译方式:翻译工作由编译程序完成,如同翻译人员翻译外文作品的结果。编译程序对整个源程序经过编译处理,产生一个与源程序等价的目标程序;目标程序还可能要调用一些其他语言编写的程序和程序库中的标准子程序,通过连接程序将目标程序和有关的程序库组合成一个完整的可执行程序。该种方式执行速度快,修改源程序后都必须重新编译。一般高级语言(C/C++、Pasca1、FORTRAN、COBOL等)都是采用编译方式。
解释方式:翻译工作由解释程序来完成。解释程序对源程序进行逐句分析,若没有错误,将该语句翻译成一个或多个机器语言指令,然后立即执行这些指令;若解释时发现错误,会立即停止,报错并提醒用户更正代码。