Vlrfsasm講習/ライブラリ

概要

本章では、関数c.convertS8Sbの由来について解説します。前章までに登場していたものの、まだ詳しい説明はありませんでした。これらは、「ライブラリ」によって提供されている関数です。

ライブラリ

ライブラリとは、Vlrfsasmの関数集のことです。実体はVlrfsasmのソースファイルなので、拡張子は.vlraです。

読み込み

ライブラリを使うには、vlrfsasm.exeに、ファイルのパスを伝える必要があります。今までと同じように作業フォルダを用意し、メモ帳でassemble.batを開いてみてください。最後にdef/common.vlraというパスが書いてあるはずです。実は、これはライブラリのファイルです。このファイルがassembler/defフォルダ内にあることを確認してみましょう。

このように、vlrfsasm.exeを実行する際、引数にライブラリのパスを追加しておけば、まとめて読み込んでくれます。順序は気にしなくてよいです。

目的

ライブラリを使う理由は、2つあります。

まず、記述の手間を減らせることが挙げられます。複数のプログラム間で、必要な関数が被ることはよくあります。これをライブラリにまとめておけば、それを読み込むだけで使えるようになります。もちろん毎回コピーするという選択肢もありますが、やはり面倒な上に、コード量が増大して読みにくくなってしまいます。

もう1つは、仕様を均一にしやすいことです。目的が同じでも、毎回書いていれば、細部が異なってくることがあります。ライブラリを共用すれば、細かな差異に煩わされにくくなります。

接頭辞

ライブラリの使用に当たって注意したいのが、名前の衝突です。特に、他人が書いたライブラリの関数名を全て認識するのは面倒だと思います。

そこで、関数名に数文字の接頭辞を付けることを推奨します。一見手間が増えるように見えますが、作者は利点が勝ると考えています。

まず、接頭辞があることで、衝突をほぼ回避できます。接頭辞が重複しなければ名前の衝突も起こらないわけです。仮に接頭辞が衝突したとしても、(a.functionName)(b.functionName)に変更するには、(a.から(b.の一括変換で済みます。

また、自分が書いた関数同士の識別にも役立ちます。例えば、構造体を扱う関数群に同一の接頭辞を付けることで、処理内容を明確にできます。Vlrfsasmにはユーザーが決められる型がありませんから、このような形で補う効果は大きいです。

前述のcommon.vlraでは、一部の接頭辞がない関数を除き、関数名には接頭辞c.が付いています。