English

コンパイラ編 - コンパイラの使い方

難易度: 🟡 中級
所要時間: 25分

📚 この章で学ぶこと


基本的な使い方

JITコンパイラで実行

# 基本形
./build/bin/cm run program.cm

# 複数ファイル(将来)
./build/bin/cm run main.cm lib.cm

# 標準入力から実行
echo 'int main() { println("Hello"); return 0; }' | ./build/bin/cm run -

コンパイル

# 実行ファイルを生成
./build/bin/cm compile program.cm -o program

# デフォルト出力名(a.out)
./build/bin/cm compile program.cm

# 実行
./program

サブコマンド

run - JITコンパイラで実行

cm run program.cm

特徴:

compile - コンパイル

cm compile program.cm -o output

特徴:

check - 構文・型チェック

cm check program.cm

特徴:


コンパイラオプション

最適化レベル

# 最適化なし(デバッグ用)
cm compile program.cm -O0

# 基本的な最適化
cm compile program.cm -O1

# 標準的な最適化(推奨)
cm compile program.cm -O2

# 最大最適化
cm compile program.cm -O3

ターゲット指定

# ネイティブコード(デフォルト)
cm compile program.cm -o program

# WebAssembly
cm compile program.cm --target=wasm -o program.wasm

# JavaScript
cm compile program.cm --target=js -o program.js

出力形式

# 実行ファイル(デフォルト)
cm compile program.cm -o program

# LLVM IR
cm compile program.cm --emit-llvm -o program.ll

# アセンブリ
cm compile program.cm --emit-asm -o program.s

デバッグオプション

デバッグモード

# 実行時デバッグ情報を表示
cm run program.cm --debug

# またはショートオプション
cm run program.cm -d

デバッグ情報付きコンパイル

# デバッグシンボル付き
cm compile program.cm -g -o program_debug

# GDBでデバッグ
gdb ./program_debug

次のステップ

✅ cmコマンドの基本的な使い方を理解した
✅ デバッグ方法がわかった
✅ 最適化オプションを知った
✅ ターゲット(Native/WASM/JS)を理解した
⏭️ 次は LLVMバックエンド を学びましょう

関連リンク


前の章: 文字列操作
次の章: LLVMバックエンド


最終更新: 2026-02-10