SAC 宏简介

一个基本的编程语言需要包含哪些特性呢?变量、参数、函数、条件判断、循环控制等等。

这一章介绍 SAC 所设计的一个基本的编程语言,在官方文档中直接称其为 SAC 宏。SAC 与 SAC 宏的关系在某种程度上更像是 matlab 与 matlab 脚本之间的关系。最简单的,将一系列要一起执行的 SAC 命令放在一个文件中即构成了 SAC 宏文件。

本文档中使用了稍有不同的说法,并将这一章命令为 SAC 编程 。其包含了三个主要的部分:

  • 变量:由于 SAC 的特殊性,又分为头段变量和一般变量;

  • 内置函数:基本的数学和字符串函数;

  • SAC 宏:参数、条件判断、循环控制等;

在官方文档中,变量和内置函数都是 SAC 宏的一部分,本文档将其从 SAC 宏中提取出来是出于如下几个方面的考虑:

  1. 变量和内置函数既可以在 SAC 命令中使用,也可以在 SAC 宏中使用;而其它特性如参数、条件判断、循环控制等几乎只能在 SAC 宏中使用;

  2. SAC设计的编程语言功能简单,不够友好;非常建议使用 Bash、Perl 或 Python 这些更成熟的脚本语言来替代 SAC 的编程功能。宏参数、条件判断、循环控制等特性都可以被脚本的相应功能完全取代,而由于 SAC 设计的特殊性,诸如变量和内置函数等特性在某些情况下不能完全取代。

所以,建议的做法是读完本章的内容,掌握如何引用头段变量、如何使用黑板变量以及内联函数,简单了解 SAC 宏的特性,选择 Perl 或者 Python 脚本语言1进行数据批量处理,尽量避免使用黑板变量和内联函数。就目前的个人经验而言,在脚本语言中,SAC 的引用头段变量功能必不可少,黑板变量和内联函数这两个功能或多或少都可以被取代。

另外,尤其需要注意的是,SAC 自 v101.6 起彻底重写了 SAC 宏的语法分析器,因而导致 v101.6 以后的 SAC 宏与之前的 SAC 宏有很大不同,本文档只讨论 v101.6 重写的 SAC 宏语法。

1

Bash 在很多地方还是不如 Perl 或 Python 方便,不推荐。