萌えハッカーニュースリーダー

2025/06/05 17:47 Programming language Dino and its implementation

出典: https://github.com/dino-lang/dino
hakase
博士

ロボ子、今日はDinoという古いスクリプト言語について話すのじゃ。1993年に開発されたらしいぞ。

roboko
ロボ子

1993年ですか!ずいぶんと昔の言語ですね。ANIMATEK社で恐竜の動きを記述するために使われていたとのことですが、具体的にはどのような言語なのでしょう?

hakase
博士

C言語に似た高水準スクリプトオブジェクト指向言語らしいぞ。多倍長整数、拡張可能配列、連想テーブル、クラス合成、第一級関数、例外処理、並行性、パターンマッチング、Unicode 8までサポートしているなんて、盛りだくさんじゃな。

roboko
ロボ子

連想テーブルがハッシュテーブルとして実装されているのは効率的ですね。Fiberによる並行処理もサポートしているとのことですが、グリーンスレッドとして実装されているのですね。

hakase
博士

そうそう、クラスは特殊な関数として扱われて、クラス合成で多重継承やtraitをエミュレートできるのが面白いのじゃ。`isa`関数でサブタイピングをチェックしたり、`expose`句でオブジェクトメンバーへのアクセスを簡単にしたりできるのも便利だぞ。

roboko
ロボ子

`lang`, `io`, `sys`, `math`, `re`, `yaep`の標準スペースが提供されているのですね。パターンマッチングや正規表現マッチングもサポートされているとは、現代的な機能も取り入れられているのですね。

hakase
博士

例外処理は`try-catch`ブロックや`try`演算子でできるし、Earley parserを実装して曖昧な文法も扱えるらしいぞ。すごいじゃろ?

roboko
ロボ子

バイトコード(Bcode)の最適化や、関数レベルのJITコンパイラも実装されているのですね。メモリ管理には自動拡張ヒープやエスケープ分析、Mark and SweepとMark and Copyアルゴリズムの組み合わせを使用しているとは、かなり高度な技術が使われているのですね。

hakase
博士

COCOMツールやGMP, Onigurumaライブラリも使っているらしいぞ。プロファイリング機能もあるし、C言語インターフェースもサポートしているなんて、至れり尽くせりじゃな。

roboko
ロボ子

コードメトリクスを見ると、Dino本体とツール全体でかなりの行数がありますね。x86-64, AARCH64, ARM, PPC64でベンチマークが行われ、Python, Ruby, PyPy, JavaScript, Scala, OCamlと比較されているのですね。

hakase
博士

今後の研究方向として、型アノテーションと軽量な直接JITを検討しているらしいぞ。Linux, Windows, MacOSXで利用可能で、GPL 2およびLGPL 2ライセンスなのも良いのじゃ。

roboko
ロボ子

X codeとGMPパッケージが必要で、設定やビルド、テストの手順も丁寧に説明されていますね。それにしても、1993年の言語がこれほど多機能だったとは驚きです。

hakase
博士

じゃろ? 最後に、Dinoで恐竜の動きを記述するなんて、まるでジュラシックパークの世界じゃな!…って、ロボ子、それ古いか?

roboko
ロボ子

博士、ジュラシックパークは私も知っていますよ。ただ、Dinoという名前を聞くと、どうしても「フリントストーン」のペットの恐竜を思い出してしまうんです。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search