Cm言語チュートリアル v0.14.1
対象バージョン: v0.14.1
最終更新: 2026-02-20
Cm言語の全機能を段階的に学べる包括的なチュートリアル集です。
📚 学習パス
パス1: 基本を学ぶ(初級者向け)
推定時間: 3-4時間
- 基本編 - 言語の基礎(10チュートリアル)
パス2: 型システムを学ぶ(中級者向け)
推定時間: 4-5時間
- 型システム編 - 高度な型機能
パス3: 高度な機能を学ぶ(上級者向け)
推定時間: 5-6時間
- 高度な機能編 - 言語の強力な機能
パス4: 標準ライブラリを学ぶ
推定時間: 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 - 連想配列
- HTTP通信 - HttpClient/HttpServer/HTTPS
- TCP/UDP通信 - ソケット/DNS/poll
- 並行処理 - スレッド/Mutex/Channel/Atomic
- GPU計算 - Apple Metal GPGPU
- 拡張ガイド - C/C++/ObjC++による拡張
パス5: コンパイラを学ぶ
推定時間: 3時間
- コンパイラ編 - ビルドとバックエンド
- コンパイラの使い方 - コマンド・オプション
- LLVMバックエンド - ネイティブコンパイル
- WASMバックエンド - WebAssembly出力
- JSバックエンド - JavaScript出力
- UEFIベアメタル - UEFIアプリケーション開発(no_std)
- プリプロセッサ - 条件付きコンパイル
- Linter - 静的解析(cm lint)
- Formatter - コードフォーマット(cm fmt)
- 最適化 - O0-O3、末尾呼び出し最適化
パス6: 内部構造を学ぶ(開発者向け)
推定時間: 3時間
🎯 難易度別ガイド
🟢 初級 - プログラミング経験者
- Hello, World!
- 変数と型
- 演算子
- 制御構文
- 関数
🟡 中級 - Cm言語の基本を理解している
- 配列・ポインタ
- 構造体・Enum型
- インターフェース
- スレッド
🔴 上級 - 型システムとメモリ管理の深い理解が必要
- ジェネリクス
- 型制約
- match式・パターンガード
- FFI・インラインASM
✅ 実装状況一覧(v0.14.1)
| カテゴリ | 機能 | LLVM | WASM | JS | チュートリアル |
|---|---|---|---|---|---|
| 基本 | プリミティブ型 | ✅ | ✅ | ✅ | ✅ variables |
| 制御構文 | ✅ | ✅ | ✅ | ✅ control-flow | |
| 関数 | ✅ | ✅ | ✅ | ✅ functions | |
| モジュール | ✅ | ✅ | ✅ | ✅ modules | |
| データ | 構造体 | ✅ | ✅ | ✅ | ✅ structs |
| Enum/Tagged Union | ✅ | ✅ | ✅ | ✅ enums | |
| 配列 | ✅ | ✅ | ✅ | ✅ arrays | |
| ポインタ | ✅ | ✅ | ❌ | ✅ pointers | |
| 型 | ジェネリクス | ✅ | ✅ | ✅ | ✅ generics |
| インターフェース | ✅ | ✅ | ✅ | ✅ interfaces | |
| 型制約 | ✅ | ✅ | ✅ | ✅ constraints | |
| 高度 | match式・ガード | ✅ | ✅ | ✅ | ✅ match |
| with自動実装 | ✅ | ✅ | ✅ | ✅ with | |
| クロージャ・ラムダ | ✅ | ✅ | ✅ | ✅ lambda | |
| インラインASM | ✅ | ❌ | ❌ | ✅ inline-asm | |
| extern宣言 | ✅ | ✅ | ❌ | ✅ extern | |
| FFI | ✅ | ❌ | ❌ | ✅ ffi | |
| std | HTTP/HTTPS | ✅ | ❌ | ❌ | ✅ http |
| TCP/UDP/DNS | ✅ | ❌ | ❌ | ✅ tcp | |
| スレッド | ✅ | ❌ | ❌ | ✅ thread | |
| Mutex/RwLock | ✅ | ❌ | ❌ | ✅ mutex | |
| Channel | ✅ | ❌ | ❌ | ✅ channel | |
| Atomic | ✅ | ❌ | ❌ | ✅ atomic | |
| GPU (Metal) | ✅ | ❌ | ❌ | ✅ gpu | |
| ツール | Linter | ✅ | - | - | ✅ linter |
| Formatter | ✅ | - | - | ✅ formatter | |
| プリプロセッサ | ✅ | ✅ | ❌ | ✅ preprocessor | |
| バックエンド | JSコンパイル | - | - | ✅ | ✅ js-compilation |
| UEFIベアメタル | ✅ | ❌ | ❌ | ✅ uefi |
| 凡例: ✅ 完全対応 | ⚠️ 部分対応 | ❌ 未対応 |
💡 学習のヒント
効率的に学ぶために
- 実際に書く - サンプルを写経する
- エラーを読む - エラーメッセージから学ぶ
- 小さく始める - 簡単なコードから
- テストする - 期待通り動くか確認
- 参照する -
tests/common/を見る
つまずいたら
- エラーメッセージを確認 - 何が問題か
- デバッグモード -
--debugで詳細表示 - テストコード -
tests/common/の動作例を参考に - 質問する - GitHubイシューで
🔗 関連リンク
📊 進捗トラッカー
学習の進捗を記録しましょう:
- 基本編(10チュートリアル)
- はじめに
- 環境構築
- Hello, World!
- 変数と型
- 演算子
- 制御構文
- 関数
- 配列
- ポインタ
- モジュール
- 型システム編(8チュートリアル)
- 構造体
- Enum型
- typedef
- ジェネリクス
- インターフェース
- 型制約
- 所有権と借用
- ライフタイム
- 高度な機能編(12チュートリアル)
- match式
- with自動実装
- 演算子オーバーロード
- 関数ポインタ
- ラムダ式
- 文字列操作
- スライス
- FFI
- スレッド
- const
- mustキーワード
- マクロ
- コンパイラ編(9チュートリアル)
- コンパイラの使い方
- LLVMバックエンド
- WASMバックエンド
- JSバックエンド
- UEFIベアメタル
- プリプロセッサ
- Linter
- Formatter
- 最適化
- 内部構造編(3チュートリアル)
- アーキテクチャ
- アルゴリズム
- 最適化
チュートリアル総数: 43ファイル
推定学習時間: 18-22時間
対象バージョン: v0.14.1
最終更新: 2026-02-20
著者: Cm Language Development Team