前言

本节作者

姚家园(作者)、 田冬冬(作者)

最近更新日期

2021-01-13

预计阅读时间

2 分钟


日常科研工作中,我们需要使用编程语言编写程序和脚本,以自动完成相应的数据处理或科学计算。因此,需要了解常见的编程语言编译和链接以及版本控制等。

编程语言一般可以分为两大类。第一类是需要编译和链接的编译型语言,如 C 语言、Fortran 语言、C++ 语言、Java 语言;第二类是不需编译便可直接执行的解释型语言,也称脚本语言,如 Python 语言、Julia 语言。通常来说,使用编译型语言编写的代码运行速度更快,但是编写代码的时间成本更多,且需要掌握更多的编程技能;脚本语言易于编写,开源的软件库和模块更多,但是运行速度较慢。

地震学科研工作者需至少掌握一门脚本语言,同时我们推荐学习一门编译型语言。对于脚本语言,我们推荐使用目前在地震学领域最流行的 Python 语言,其官方模块、第三方模块和软件包众多,基本可以满足我们日常的科研工作需求。而使用哪种编译型语言并不重要,熟悉掌握一门编译型语言,其他编译型语言也就可以很快地学会和上手了。

日常的数据处理和简单的科学计算可以使用脚本语言快速实现,以便迅速上手和开展研究。如果需要更高的计算效率,可以使用编译型语言编写代码。因此,我们在完成一个项目的时候,往往是同时使用这两类编程语言来编写代码。有时候还可以用脚本语言快速、便捷地实现一个任务的一部分,然后调用使用编译型语言书写的需求计算效率的另外一部分的代码来加速计算。

需要注意的是,在本教程中我们将 Linux 和 macOS 系统的 Shell 也归为脚本语言。严格说来,Shell 其实本身只是一个空壳,具有最基本的条件判断和循环功能。借助 Linux 和 macOS 系统的命令行工具,如 awksortgrep,其可以用来做日常的数据处理、字符串处理等。Shell 脚本一般仅适合用几行就可以搞定的简单程序,更复杂的情况建议使用其他脚本语言来完成。我们以一种常见的 Shell 来讲述其基本语法和用途,即 Bash,其他常见的 Shell 还有 Zsh、csh 等。