--- title: WebAssembly テキストフォーマットから wasm に変換する slug: WebAssembly/Text_format_to_wasm tags: - WebAssembly - assembly - conversion - text format - wabt - wasm - wast2wasm - wat2wasm translation_of: WebAssembly/Text_format_to_wasm ---
{{WebAssemblySidebar}}
WebAssembly にはS式ベースのテキスト表現があります。これはテキストエディタ、ブラウザの開発者ツールなどで見せるために設計された中間表現です。この記事では、これがどのように動作するか、テキスト形式のファイルを .wasm アセンブリ形式に変換するのに利用可能なツールの使用方法について少し説明します。
注: テキスト形式のファイルは通常 .wat という拡張子で保存されます。場合によっては .wast も使われます。これはアサーションなどの変換時に .wasm に含まれない特別なテストコマンドを含むファイルを指します。
簡単な例を見てみましょう。次のプログラムは imports というモジュールから imported_func という名前の関数をインポートし、exported_func という名前の関数をエクスポートしています:
(module
(func $i (import "imports" "imported_func") (param i32))
(func (export "exported_func")
i32.const 42
call $i
)
)
WebAssembly 関数 exported_func は私達の環境 (WebAssembly モジュールを使用しているウェブアプリケーションなど) で使用するためにエクスポートされます。この関数が呼び出されたとき、インポートされた JavaScript 関数 imported_func パラメータとして値 (42) を渡して実行されます。
上の .wat テキスト表現の例を .wasm アセンブリ形式に変換してみましょう。
simple.wat という名前のファイルを作成します。PATH に /wabt/out ディレクトリを追加します。-o パラメータ、出力ファイルパスを指定します:
wat2wasm simple.wat -o simple.wasm
これで simple.wasm という名前のファイルに wasm が出力されます。これには .wasm アセンブリのコードが含まれます。
注: wasm2wat を使用して wasm から テキスト表現に戻すことができます。例: wasm2wat simple.wasm -o text.wat.
出力されたファイルはアセンブリベースなので通常のテキストエディタで表示することができません。ただし、wat2wasm ツールの -v オプションを使用して見ることができます。以下を試してみてください:
wat2wasm simple.wat -v
ターミナルには次のように出力されるでしょう:
