构建程序#
像 Fortran、C、C++ 和 Java 这样的语言,简单说,它们有一些共同的特点:你用你选择的语言写代码,但你必须用这些源代码来构建一个可执行的程序。其它语言是解释型的 —— 源代码被一个特殊的程序解析并作为直接指令。这种类型的语言有两个非常简单的例子:Windows 批处理文件和 Linux shell 脚本。
在教程中我们集中讨论第一类编程语言,以Fortran为主要例子。编译型语言的一个优点是,构建可执行文件的过程被用来将人类可读的源代码转化为高效的机器可运行的程序。
备注:本教程给出了在Windows和Linux操作系统上的例子,但是工作流和通用原理仍然适用于macOS。
编译型语言#
让我们看一个简单的例子:
program hello
write(*,*) 'Hello!'
end program hello
这是用Fortran可以编写的最简单的程序也是最著名的Fortran程序之一的变体。即使源代码的很简单,但当编译后的可执行程序运行时,实际会发生很多事:
进程在计算机可以以这么一种方式启动。它可以向键入 程序名称的控制台窗口(DOS-box,xterm等)写入内容。
它在控制台上输出文本“Hello!”。为此,必须与控制台正确交互。
完成后,它就结束了,清理掉它所占用的所有资源(内存、与控制台的连接等)。
幸运的是,做一个高级语言的程序员,你不需要考虑所有细节。实际上,这类事情细节是由构建过程定的(编译器和链接器)。