--- 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
ターミナルには次のように出力されるでしょう: