English
Cm言語 実装済み機能一覧 (v0.14.0)
Cm言語コンパイラおよびランタイムで現在利用可能な機能の一覧です。
💎 基本機能
| 機能 |
状態 |
詳細 |
| プリミティブ型 |
✅ |
int, uint, float, double, bool, char, string |
| 演算子 |
✅ |
算術、比較、論理、ビット演算、三項演算子 |
| 制御構文 |
✅ |
if/else, while, for, switch, defer |
| 関数 |
✅ |
定義、オーバーロード、デフォルト引数、可変長引数 |
| モジュール |
✅ |
import, export, 名前空間 |
| const強化 |
✅ |
配列サイズにconst変数を使用可能、定数式のコンパイル時評価 |
🏗️ 型システム
| 機能 |
状態 |
詳細 |
| 構造体 (struct) |
✅ |
定義、初期化、メンバアクセス、コンストラクタ(self()) |
| デストラクタ |
✅ |
~self()によるリソース自動解放 |
| 列挙型 (enum) |
✅ |
強型付け列挙型、整数値指定 |
| Tagged Union |
✅ |
関連データ付きenum、match分解(Option, Result) |
| ジェネリクス |
✅ |
型パラメータ、関数・構造体ジェネリクス、ジェネリックコンストラクタ、複数型パラメータ |
| インターフェース |
✅ |
interface定義、impl実装、動的ディスパッチ |
| 型制約 (where) |
✅ |
AND境界 (T: A + B), OR境界 (T: A | B) |
| 型エイリアス |
✅ |
typedef NewType = OldType |
| インラインユニオン型 |
✅ |
int \| null 構文でnull許容型を簡潔に記述 |
| null型 |
✅ |
独立したnull型、ユニオン型のメンバーとして使用 |
| ポインタ |
✅ |
生ポインタ、-> 演算子によるフィールドアクセス |
🚀 高度な機能
| 機能 |
状態 |
詳細 |
| パターンマッチング |
✅ |
match 式、リテラル・Enum・ワイルドカード、パターンガード |
| with自動実装 |
✅ |
Eq, Ord, Clone, Hash の自動導出 |
| 演算子オーバーロード |
✅ |
impl T { operator ... } で直接定義、複合代入(+=等)自動対応、ビット演算子 |
| 関数ポインタ |
✅ |
関数を値として扱う、ラムダ式 |
| 文字列補間 |
✅ |
println("x = {x}") 形式の出力 |
| 外部関数 (FFI) |
✅ |
extern "C" ブロック、Cライブラリ連携 |
| mustキーワード |
✅ |
戻り値使用の強制 |
| インラインアセンブリ |
✅ |
__asm__ キーワード、x86_64/ARM64対応 |
| 条件付きコンパイル |
✅ |
#ifdef/#ifndef/#else/#endif、定義済みマクロ |
📦 標準ライブラリ
| モジュール |
状態 |
詳細 |
| std::io |
✅ |
println/print(Zero-libc実装) |
| std::thread |
✅ |
spawn, join, detach, sleep_ms |
| std::sync |
✅ |
Mutex, Channel |
| std::collections |
✅ |
Vector<T>, Queue<T>, HashMap<K,V> |
| std::gpu |
✅ |
Metal GPU演算(macOS) |
| std::net |
✅ |
TCP/UDP通信 |
| std::http |
✅ |
HTTP/HTTPS通信 |
⚙️ バックエンド
| バックエンド |
状態 |
詳細 |
| JITコンパイラ |
✅ |
LLVM ORC JIT、高速な実行 |
| LLVM (Native) |
✅ |
ネイティブ実行ファイル生成 (x86_64, ARM64) |
| LLVM (WASM) |
✅ |
WebAssembly出力、ブラウザ/WASI実行 |
| JavaScript |
✅ |
Node.js/ブラウザ向けJS生成(v0.14.0で通過率87%) |
🛠️ ツール・最適化
| 機能 |
状態 |
詳細 |
| cm lint |
✅ |
コード品質チェック、診断カタログ |
| cm fmt |
✅ |
コードフォーマッタ |
| MIR最適化 |
✅ |
定数畳み込み、DCE、インライン化、LICM |
| 末尾呼び出し最適化 |
✅ |
再帰関数のスタック最適化 |
| 無限ループ検出 |
✅ |
コンパイル時の静的無限ループ解析 |
| 自動デバッグ出力 |
✅ |
#debug ディレクティブによるトレース |
| マルチアーキテクチャ |
✅ |
make build ARCH=arm64/x86_64 |
📊 診断システム
| カテゴリ |
コード範囲 |
説明 |
| 構文エラー |
E001-E099 |
パーサーエラー |
| 型エラー |
E100-E299 |
型チェックエラー |
| ポインタエラー |
E300-E399 |
null参照、const違反、->演算子提案 |
| ジェネリクスエラー |
E400-E499 |
型引数不一致、制約違反 |
| Enum/Matchエラー |
E500-E599 |
網羅性、重複アーム |
| リテラルエラー |
E600-E699 |
オーバーフロー、定数式必須 |
| 警告 |
W100-W401 |
未使用変数、潜在的問題 |
| Lintルール |
L200-L402 |
スタイル、ベストプラクティス |
最終更新: 2026年2月15日
バージョン: v0.14.0