第1回は、マクロとは何か。広義のマクロは「TACL 言語を使っていろいろな機能を実現したもの」です。そう、TACL とは言語なのですよ、みなさん。UNIX で言う shell プログラミングと同じようなものです。マクロを実装の方法で区分けすると、macroroutinealiasobey があります。

え、obey がマクロなんだろうか?正式ではないかもしれませんが、「この機能はマクロで対応します」とお客さまに言った時に、実際は obey で済むところは obey で終わらせたりするでしょ?だから obey も広義のマクロだと思います。正確には「スクリプト」と言った方が適切かもしれませんが。(あ、「マクロ」と「macro」は意図的に使い分けてますので気をつけてください)

で、obey はファイルですよね。ファイル形式しかありません。しかしそれ以外の macroroutine などはファイルだったり variable だったりします。variable とは何でしょうか。

ざっくり言うとコマンドのことだと今は思ってください。TACL の代表的コマンドである fileinfoalias です。volume コマンドは routine です。(fup コマンドは何でしょうか。これはプログラムですね。マクロではありません。)

普段使っているコマンドは大半が routine です。なぜかというと、routineには強力なパラメータチェック機構が備わっているからです。人間が入力する以上、バラメータのチェックが欠かせませんが、routine でマクロを書くと、楽にチェックロジックを書けるのです。だから人間が叩くコマンドは routine で、その裏で使うサブルーチン的ロジックは macro で書いたりします。

ここでマクロの種類についてパラメータ操作という面から整理してみましょう。