開発に協力・参加


ぜひ, 開発に参加してください!!

minilangの内部

minilang は、まだ、全然きちんと動きません。現時点での内部の特徴は,

  • C++ で作った. C++11 (C++0x) コンパイラが必要.
  • AST (Abstract Syntax Tree) ベース。バイトコードは使っていない。
  • 参照カウンタ + GCの組み合わせ
  • 末尾呼び出しの最適化. See 実装Note - 末尾呼び出しの最適化

目標

安全で, 信頼性のあるプログラムを書けるようにしたいです。

当面 (v1.0まで) の目標

  • Ruby 1.9 とのある程度の互換性. 飽きたら止める. ただし, C APIは互換にはしません (できません)。
  • FFI
  • 変数の型チェック
  • 本物のマクロ
  • メソッドのオーバーロード
  • コードをmarshaling (serialize) して, ネットワーク越しにやり取りできるようにする。

コルーチンは欲しいですが、継続までは不要。

将来の目標

プログラミング言語のパワー (Arcからの挑戦) という観点からは, もはや Ruby はトップ集団の一つでもありません。

あらゆる汎用目的の高級言語にとってのテストは、機能 x があるとか 問題 y を解けるとかではなく、それでプログラムの長さがどうなるかなのだ。

Ruby v1.8.0 のリリースが2003年, v1.6.0 のリリースが2000年。

  1. Scala -- The Scala Programming Language

    Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications. JVM で動作。

  2. Groovy -- Groovy - Home

    2020.9更新. Apache に移ったのか。将来性が低下したか・・・

  3. C++

    いまだに大きく進化が続いている。複数の実装もある。

  4. Haskellのような関数型言語。

もっとコンパイル時にエラーを検出できるように, それから, もっと並列に動作できるようにしたい。

実装ノート。

作業場

minilang は, GitLab でソースコードをホストしています。

まずはユーザ登録してください。(無料)

バグ報告

GitLab.com にユーザ登録後, minilang スペースでチケットを作成してください。

コミッタになる

コミッタも大募集。

貢献者ライセンス同意書 (Contributor License Agreement) にサインしてお送りください。