程序设计语言和编译
用计算机解决问题包括两个概念上不同的步骤。首先,因该构造出一个算法或在解决该问题以有的算法中挑一个。这个过程称为算法设计(algorithmic design).第二步是用程序设计语言将该算法表达为程序,这个过程称为编码(coding)。
c语言为高级语言,为了使用高级语言编写的程序能够在不同的计算机系统上运行,首先必须将程序翻译成运行程序的计算机特有的低级语言。例如,虽然apple公司的macintosh(麦金塔计算机)和IBM的pc机都能执行用c语言这样的高级语言编写出的程序,但它们使用的基本的机器语言是不同的。
为了使用高级语言编写的程序能够在不同的计算机系统上运行,首先必须将程序翻译成运行程序的计算机特有的低级机器语言。例如,若为Macintosh机器上写一个c语言的程序,那么运行一个特殊的程序,该程序将c语言转换成Macintosh的专用机器语言。 在高级语言和机器语言之间执行这种翻译任务的程序叫做编译器(compiler)。
在大部分计算机系统上。运行程序之前,都要先输入程序文本并将其保存为一个文件(file)中。文件是存储在计算机辅存里面的信息的统称。每个文件都必须有一个文件名,通常用句点将文件名分为两部分,如myprog.c。建立文件时需要选择一个根名(root name),这是文件名中句点之前的那部分名称,它说明文件的内容。句点后面的那部分名称作为扩展名(extension),说明文件类型,
包含程序文本的文件称为源文件(source file). 一旦有了源文件,下一步就是用编译器将源文件翻译成计算机可以直接读懂的形式。这个过程也因机器而已,但在大多数情况下,编译器将源文件翻译成中间文件,这种中间文件称为目标文件(object file),其中包含适用于特定计算机系统的实际指令。这个目标文件和其他目标文件可以组成在系统上运行的可执行文件(executable file).这写所谓的其他目标文件常常是一些称库(library)的预定义的目标文件,库中含有程序锁要求不同操作的机器指令。将所有独立的目标文件组合成一个可执行的文件的过程叫做链接(linking)。
源文件通过编译器编译成目标文件(也叫中间文件),然后在和一些要调用的函数的相对应的库(这里也是目标文件)链接在一起,最后生成可以执行文件。