このプロジェクトについて

Zen Cは、カスタムバイトコードやランタイムではなく、人間が読めるGNU C/C11を出力するコンパイラを備えたモダンなシステムプログラミング言語です。その目標は、高水準の使いやすさとCの性能および相互運用性を組み合わせることであり、生成されたコードが既存のCライブラリにリンクできるよう、完全なC ABI互換性を維持しています。 READMEに記載されている言語機能には、型推論、パターンマッチング、ジェネリクス、トレイト、async/await、RAIIスタイルの機能を備えた手動メモリ管理が含まれます。コンパイラはCで書かれており、makeでビルドされます。Windowsバッチスクリプトと、Cosmopolitan Libcを介したポータブルな「Actually Portable Executable」ビルドも文書化されており、後者はx86_64およびaarch64上のLinux、macOS、Windows、およびいくつかのBSDで実行される単一バイナリを生成します。 ツールには、run、build、transpileサブコマンドを持つコマンドラインコンパイラ(zc)、LibTCCを介したインプロセスJITコンパイルを使用するREPL(zc-repl)、定義への移動、参照、ホバー、補完、ドキュメントシンボル、シグネチャヘルプ、診断をサポートする言語サーバー(zc-lsp)、およびドキュメント生成ツール(zc-doc)が含まれます。デバッグはLLDBやGDBなどの標準的なCデバッガで行われ、VS Code、Vim/Neovim、Zed用のエディタ統合が存在します。 標準ライブラリは、コレクション(Vec、Map、Set、Stack、Queue)、UTF-8サポート付き文字列、オプション型と結果型、ファイルシステム、I/O、パス、環境、ネットワーキング(TCP、UDP、HTTP、DNS、URL)、スレッド、時間、JSON、正規表現、SIMD型、任意精度整数と浮動小数点数、複素数、プロセス管理、CUDAヘルパーをカバーしています。組み込みの単体テストフレームワークは、名前付きテストブロック、非致命的アサーション、失敗したテスト数に等しい終了コードを提供します。 出力バックエンドは、C、C++、CUDA、Objective-C、JSON、ASTダンプ、Common Lisp、Graphvizをターゲットにでき、バックエンド固有のオプションがあります。コンパイラは、公開ヘッダーを介してCライブラリとして埋め込むこともできます。READMEは、GCC、Clang、Zig、TCCに対するテストスイートの結果に言及し、提携関係の明示的な免責事項付きでMISRA C:2012準拠テストについても言及しています。