MoonLang — 軽量静的プログラミング言語コンパイラ
概要
MoonLangは、C++とLLVM上に構築された軽量な静的型付きプログラミング言語のコンパイラ実装です。特徴として、: endスタイルと中括弧{ }スタイルという二種類の構文を選択できる点があり、開発者の好みに合わせた記法が可能です。OS面ではWindows、Linux、macOSをサポートし、さらにARMやRISC-V、ESP32といった組み込みデバイス向けにもコンパイル可能で、生成される実行ファイルは15KB〜300KBと非常に小さく抑えられています。本リポジトリはコンパイラ本体のソースコード(フロントエンドとLLVMを使ったバックエンド)を含んでおり、言語仕様の拡張や組み込み向け出力の最適化を行いやすい構成になっています。
リポジトリの統計情報
- スター数: 3
- フォーク数: 1
- ウォッチャー数: 3
- コミット数: 3
- ファイル数: 11
- メインの言語: C
主な特徴
- 軽量なランタイム/出力バイナリ(約15KB〜300KB)でMCUからデスクトップまで対応
- C++とLLVMを基盤にしたコンパイラ設計(フロントエンド+LLVMバックエンド)
- 2種類の構文スタイル(
: endと{ })をサポートし柔軟な記法が可能 - Windows/Linux/macOSおよびARM・RISC-V・ESP32等の組み込みプラットフォームに対応
技術的なポイント
MoonLangはフロントエンド(パーサ、型チェック、AST生成)をC++で実装し、LLVMをバックエンドとしてコード生成と最適化を行う設計が中心です。LLVM利用により、ターゲットプラットフォームごとの最適化や多様なアーキテクチャへのコード生成が比較的容易になります。生成物が15KB〜300KBに収まるという点から、言語側で必要最小限のランタイム依存に抑えていることが推測できます(静的リンクや小型のランタイム実装、不要な機能の排除など)。また、: endスタイルはPythonやRubyのような行指向の構文に近い一方で、{ }スタイルは従来のC系言語に馴染みのあるブロック構文を提供するため、既存の開発者の好みに応じたコードスタイルを選べます。組み込みプラットフォームのサポートを謳っていることから、クロスコンパイルの仕組みやセクション配置、最適化フラグの調整、浮動小数点やライブラリ依存の最小化といった実装上の配慮が行われていると考えられます。リポジトリ自体は比較的小規模でコミット数も少なく、現在はコンパイラコアの基礎実装段階にあるため、実用化や言語仕様の安定化には今後の開発が鍵になります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- README.zh-CN.md: file
- build: dir
…他 6 ファイル
まとめ
軽量で組み込みにも配慮されたコンパイラ実装を目指す、成長途中の注目プロジェクト。
リポジトリ情報:
- 名前: moonlang
- 説明: MoonLang is a lightweight static programming language built with C++ and LLVM, featuring dual syntax styles (
: endand{ }). Supports Windows, Linux, macOS and embedded platforms (ARM/RISC-V/ESP32), compiles to only 15KB-300KB, build full-stack applications from MCU to desktop. - スター数: 3
- 言語: C
- URL: https://github.com/8dks/moonlang
- オーナー: 8dks
- アバター: https://avatars.githubusercontent.com/u/259387206?v=4