| layout | default |
|---|---|
| title | Tutorials |
| nav_order | 2 |
| has_children | true |
対象バージョン: v0.17.2
最終更新: v0.17.2 (2026-08-15)
Cm言語の全機能を段階的に学べる包括的なチュートリアル集です。
推定時間: 3-4時間
- 基本編 - 言語の基礎(10チュートリアル)
推定時間: 4-5時間
- 型システム編 - 高度な型機能
推定時間: 5-6時間
- 高度な機能編 - 言語の強力な機能
推定時間: 3-4時間
- 標準ライブラリ編 - Native向けstdモジュール
- 入出力 (io) - println/input/ファイルI/O
- メモリ管理 (mem) - alloc/size_of/Allocator
- 数学関数 (math) - sin/sqrt/PI/gcd
- コア (core) - min/max/clamp/型エイリアス
- Vector - 動的配列・Vector<Vector<int>>
- Queue - FIFOキュー
- HashMap - 連想配列
- TreeMap - 順序付きマップ(AVL木)
- TreeSet / HashSet - 集合(順序付き/ハッシュ・v0.17.2)
- 文字分類・数値解析・フォーマット - chars/parse/format/hash/intern(v0.17.2)
- HTTP通信 - HttpClient/HttpServer/HTTPS
- TCP/UDP通信 - ソケット/DNS/poll
- 並行処理 - スレッド/Mutex/Channel/Atomic
- GPU計算 - Apple Metal GPGPU
- 拡張ガイド - C/C++/ObjC++による拡張
推定時間: 3時間
- コンパイラ編 - ビルドとバックエンド
- コンパイラの使い方 - コマンド・オプション
- LLVMバックエンド - ネイティブコンパイル
- WASMバックエンド - WebAssembly出力
- JSバックエンド - JavaScript出力
- SVバックエンド - SystemVerilog / FPGA出力 🆕
- UEFIベアメタル - UEFIアプリケーション開発(no_std)
- プリプロセッサ - 条件付きコンパイル
- Linter - 静的解析(cm lint)
- Formatter - コードフォーマット(cm fmt)
- 最適化 - O0-O3、末尾呼び出し最適化
推定時間: 3時間
- Hello, World!
- 変数と型
- 演算子
- 制御構文
- 関数
- 配列・ポインタ
- 構造体・Enum型
- インターフェース
- スレッド
- ジェネリクス
- 型制約
- match式・パターンガード
- FFI・インラインASM
| カテゴリ | 機能 | LLVM | WASM | JS | チュートリアル |
|---|---|---|---|---|---|
| 基本 | プリミティブ型 | ✅ | ✅ | ✅ | ✅ variables |
| 制御構文 | ✅ | ✅ | ✅ | ✅ control-flow | |
| 関数・デフォルト引数 | ✅ | ✅ | ✅ | ✅ functions | |
| 関数オーバーロード | ❌ | ❌ | ❌ | 未対応(重複定義はエラー診断) | |
| モジュール | ✅ | ✅ | ✅ | ✅ modules | |
| データ | 構造体 | ✅ | ✅ | ✅ | ✅ structs |
| Enum/Tagged Union | ✅ | ✅ | ✅ | ✅ enums | |
Result/Option・? 演算子 |
✅ | ✅ | ✅ | ✅ enums | |
ユニオン実行時型判別(is・match型パターン) |
✅ | ✅ | ✅ | ✅ typedef | |
| 配列 | ✅ | ✅ | ✅ | ✅ arrays | |
| ポインタ | ✅ | ✅ | ❌ | ✅ pointers | |
| 型 | ジェネリクス | ✅ | ✅ | ✅ | ✅ generics |
| インターフェース(静的) | ✅ | ✅ | ✅ | ✅ interfaces | |
| インターフェース動的ディスパッチ | ✅ | ✅ | ✅(値/引数) | ポインタ経由はLLVM系のみ | |
| 型制約 | ✅ | ✅ | ✅ | ✅ constraints | |
| 高度 | match式・ガード | ✅ | ✅ | ✅ | ✅ match |
| with自動実装 | ✅ | ✅ | ✅ | ✅ with | |
| クロージャ・ラムダ | ✅ | ✅ | ✅ | ✅ lambda | |
| インラインASM | ✅ | ❌ | ❌ | ✅ inline-asm | |
| extern宣言 | ✅ | ✅ | ❌ | ✅ extern | |
| FFI | ✅ | ❌ | ❌ | ✅ ffi | |
| std | std::fs(ファイル操作) | ✅ | ❌ | ❌ | ✅ io |
| HTTP/HTTPS | ✅ | ❌ | ❌ | ✅ http | |
| TCP/UDP/DNS | ✅ | ❌ | ❌ | ✅ tcp | |
| スレッド | ✅ | ❌ | ❌ | ✅ thread | |
| Mutex/RwLock | ✅ | ❌ | ❌ | ✅ mutex | |
| Channel | ✅ | ❌ | ❌ | ✅ channel | |
| Atomic | ✅ | ❌ | ❌ | ✅ atomic | |
| GPU (Metal) | ✅ | ❌ | ❌ | ✅ gpu | |
| ツール | Linter | ✅ | - | - | ✅ linter |
cm test / #[test] |
✅ | - | - | ✅ state-sim | |
| Formatter | ✅ | - | - | ✅ formatter | |
| プリプロセッサ | ✅ | ✅ | ❌ | ✅ preprocessor | |
| バックエンド | JSコンパイル | - | - | ✅ | ✅ js-compilation |
| SVバックエンド | ✅ | ❌ | ❌ | ✅ sv | |
| UEFIベアメタル | ✅ | ❌ | ❌ | ✅ uefi |
凡例: ✅ 完全対応 |
- 実際に書く - サンプルを写経する
- エラーを読む - エラーメッセージから学ぶ
- 小さく始める - 簡単なコードから
- テストする - 期待通り動くか確認
- 参照する -
tests/common/を見る
- エラーメッセージを確認 - 何が問題か
- デバッグモード -
--debugで詳細表示 - テストコード -
tests/common/の動作例を参考に - 質問する - GitHubイシューで
推定学習時間: 18-22時間
対象バージョン: v0.17.2
最終更新: v0.17.2 (2026-08-15)
著者: Cm Language Development Team
次: 基本編 →