!!!独自DSL !perl製AST ベースのインタプリタ Perlでゼロから実装した AST ベースのインタプリタです。 Tokenizer、Parser、AST Evaluator、スコープ管理、関数システムを備えています。 Tokenizer、Parser、AST Builder、Evaluator、スコープ管理を含む本体は、POD込み約750行。全体像を1ファイルで追える規模に収まっています。 [GitHubに登録|https://github.com/john-smith-7701/chabo-dsl/tree/main]しv0.1.0として公開しました。遊んでみて下さい。 !!AI達に評価して貰う GitHubに登録したリポジトリを各AI達に評価して貰った。おおむね良い評価をもらったが、実際のPerl開発者や言語処理系に興味のある人からもフィードバックを貰いたいものだ。 ![playgroundに評価して貰った|https://john-smith.hatenadiary.jp/entry/2026/06/27/142638] このREADMEの内容を確認しました。とても詳細で技術的にも完成度が高いですね! 📊 このREADME/プロジェクトの評価ポイント ✅ 高評価ポイント 技術的完成度が高い +ASTベースのインタプリタを750行で実現 **Tokenizer、Parser、Evaluator、スコープ管理と網羅的な機能説明が丁寧 +オーバービューで全体像が把握できる **具体的なデモコードが豊富多言語対応の設計 日本語DSLはSugar.pmとして分離されている点が柔軟性あり +実用的なデモあり **Web実行デモURLがあるのは大きなプラス +Perl愛を感じる実装 **Mojolicious非依存、Pure Perlで実装 ・・・ ![chabo-dslをCopilotに評価して貰う|https://john-smith.hatenadiary.jp/entry/2026/06/27/133954] この README は、技術的に明快で、DSL(Domain Specific Language)実装の概要を短くまとめた良質なドキュメントです。特に以下の点が優れています: 実装範囲が明確 Tokenizer、Parser、AST Evaluator、スコープ管理、関数システムなど、DSL インタプリタに必要な構成要素が簡潔に列挙されています 。 全体像がコンパクト 本体が「POD込み約750行」で収まっているという情報は、学習目的の読者にとって非常に有益です 。 日本語 DSL の実例が豊富 日本語 DSL のサンプルコードが多数掲載されており、実際の挙動がイメージしやすい構成になっています(例:gcd、フィボナッチ、信号判定など) 。 エンジンが自然言語に依存しない設計 Sugar.pm を差し替えることで他言語風 DSL を作れるという拡張性の高さが明示されています 。 ・・・ ![chabo-dslをGeminiに評価して貰う|https://john-smith.hatenadiary.jp/entry/2026/06/27/121038] +非常に高い技術力と「車輪の再発明」の価値 **外部の構文解析ライブラリ(Yacc/Lexなど)や重厚なフレームワーク(Mojolicious等)に依存せず、Perlでゼロから字句解析器(Tokenizer)や構文解析器(Parser)、AST(抽象構文木)エバリュエーターを自作している点は、技術的に非常に教育的で価値が高いです。 +コードの圧倒的な見通しの良さ **これだけの機能(スコープ管理、ユーザー定義関数、再帰、制御構文、配列・ハッシュアクセスなど)を盛り込みながら、「POD(ドキュメント)込みで約750行」の1ファイルに収めている点は特筆すべき軽快さです。DSL(ドメイン固有言語)やインタプリタの仕組みを学びたい人にとって、全体像を一度に把握できる最高のサンプルコードになっています。 +「日本語DSL(Sugar.pm)」という面白いアプローチ **コアエンジンは自然言語に依存しない設計にしつつ、拡張例として Sugar.pm を用いた「日本語風の記述(もし信号が青か緑ならすすめ...)」を実装しているのがユニークです。ビジネスロジックを非エンジニア向けに日本語化するアプローチの手本になります。 + ・・・ !AIの評価をchatGPTに評価して貰う 4つのAIを比較すると 私ならこう順位を付けます。 ,AI,特徴 ,Copilot,コードレビューが一番細かい。保守性や構造まで踏み込む。 ,Gemini,Perlの理解が深く、「なぜこの実装なのか」を読み取るのが上手い。 ,ChatGPT,全体の設計や教育的価値、プロジェクトとしての位置づけを整理するのが得意。 ,さくらAI,技術的な完成度やREADMEの分かりやすさを素直に評価している。 それぞれ強みが違います。 そして一番大事なこと 今回、一番印象に残ったのは 4つのAIが互いに相談していないのに、ほぼ同じ結論に達していることです。 共通して評価されたのは、 *ASTベースのインタプリタ *Pure Perlによる自前実装 *日本語DSLという独自性 *コンパクトな設計 *教育的価値の高さ 一方、改善点としても、 *テストコード *エラーメッセージ *文法仕様書 *保守性(モジュール分割など) が何度も挙がっています。 これは、「偶然褒められた」のではなく、コードやREADMEから見える特徴が一貫して伝わっていることを示しています。 !!初めてのテスト $ tree . ├── LICENSE ├── README.md ├── README_ja.md ├── lib │ └── Interpreter │ ├── Ast.pm │ └── Sugar.pm └── t ├── arithmetic.t ├── function.t └── japanese_dsl.t 3 directories, 8 files $ prove t t/arithmetic.t .... ok t/function.t ...... ok t/japanese_dsl.t .. ok All tests successful. Files=3, Tests=5, 1 wallclock secs ( 0.05 usr 0.04 sys + 0.21 cusr 0.25 csys = 0.55 CPU) Result: PASS