「think」がキーワードになるプログラミング言語 ThinkLang — AIをif文やfor文と同じ「言語の基本構文」にする試み

お知らせ

AIをAPIとして外部から呼び出すのではなく、プログラミング言語の基本構文として組み込んだら?——そんな発想から生まれた新しいオープンソース言語「ThinkLang」が話題になっています。ifforと同じようにthinkをキーワードとして使えるこの言語は、AI時代のプログラミングのあり方に一石を投じるプロジェクトです。

この記事のポイント

  • AIを「ライブラリ呼び出し」ではなく「言語レベルのプリミティブ」として扱う新言語ThinkLangが公開された
  • thinkinferreasonという3つのAI専用キーワードが組み込まれ、型安全なAI出力が得られる
  • トランスパイラ方式でTypeScriptに変換され、独自のパーサー、型チェッカー、LSPサーバー、VS Code拡張まで備えている

従来のAI呼び出しの問題点

現在、多くの開発者がAIをプログラムから利用する際、APIのボイラープレートコード、手動でのプロンプト構築、型のないJSONパース、そしてレスポンスが期待通りの形式であることを「祈る」ような実装を強いられています。例えばClaude APIを呼び出す場合、anthropic.messages.create()でモデルやメッセージを指定し、返ってきたJSONをパースして中身を確認する——という煩雑なコードが必要です。

ThinkLangの作者は、この現状に疑問を投げかけます。AIがもはや「たまに呼び出すサービス」ではなく「計算の基本要素」になりつつある今、なぜ私たちはまだAPIラッパーとして使い続けているのか。ifforreturnのように、AIも言語の一級市民として扱うべきではないか——これがThinkLang誕生の動機です。

ThinkLangの3つのAIプリミティブ

ThinkLangには、AIを操作するための3つの専用キーワードが言語仕様として組み込まれています。

think(prompt) — 基本のAI呼び出し

最も中心的なプリミティブです。型とプロンプトを指定すると、構造化された型安全な出力が返されます。例えば映画レビューの型を定義してthink("Review the movie Inception")と書くだけで、タイトル・評価・長所・短所・結論が型に従った形で返ってきます。コンパイラが型宣言をJSONスキーマに変換し、LLMの出力を制約するため、パースも検証も「祈り」も不要です。

infer(value) — 既存データからの推論

すでにデータが手元にあり、そこからAIに何かを導き出してほしい場合に使います。例えば医療テキストを渡してカテゴリ分類を行うといった、軽量な推論タスクに適しています。

reason {} — 多段階推論

目標(goal)とステップ(steps)を明示的に指定して、多段階の推論を行うブロック構文です。投資機会の評価のように、「財務基盤を分析」→「市場環境を評価」といった順序立てた思考プロセスを言語レベルで記述できます。

技術的なアーキテクチャ

ThinkLangはトランスパイラとして設計されています。.tlファイルに書かれたコードは、コンパイラによってTypeScriptに変換され、LLMランタイムを呼び出すコードとして実行されます。

コンパイルパイプラインは「パース → インポート解決 → 型チェック → コード生成 → 実行」という流れで、PEG文法による独自パーサーを持っています。さらに、単なる言語処理系にとどまらず、LSPサーバー(エディタ連携用のLanguage Server Protocol)、VS Code拡張機能、テスティングフレームワーク、CLIツールまで一式が揃っています。

この充実したツールチェーンは、ThinkLangが単なる概念実証(PoC)ではなく、実際の開発ワークフローで使えることを目指していることを示しています。型チェッカーの存在により、AIの出力が期待する型と一致しない場合はコンパイル時にエラーとして検出できる点も大きな特徴です。

AI時代のプログラミング言語設計という視点

ThinkLangが提起する問いは本質的です。プログラミング言語の歴史を振り返ると、新しい計算パラダイムが登場するたびに、それを言語レベルで取り込む動きがありました。並行処理のためのasync/await、メモリ安全性のためのRustの所有権システムなど、重要な概念は最終的に言語の構文として昇華されてきました。

AIが計算の基本要素になりつつある今、それを言語プリミティブとして扱うのは自然な進化と言えるかもしれません。もちろん、現時点ではLLMの出力の非決定性やレイテンシなど、従来の言語プリミティブとは異なる特性への対応という課題もあります。しかし、こうした実験的な試みが将来のプログラミング言語設計に影響を与える可能性は十分にあります。

知っておくと便利なTips

  • ThinkLangはオープンソースで公開されているため、言語設計やトランスパイラの仕組みに興味がある方はソースコードを読んで学ぶことができる
  • 型宣言がJSONスキーマに変換される仕組みは、既存のAIアプリケーション開発でも「Structured Output」として応用できるアイデア
  • PEG文法によるパーサー実装やLSPサーバーの構築は、独自言語を作りたい開発者にとって参考になるアーキテクチャ

まとめ

ThinkLangは、AIをプログラミング言語の一級市民として扱うという野心的な実験です。thinkinferreasonという3つのキーワードにより、従来のAPI呼び出しに伴うボイラープレートを排除し、型安全なAI統合を実現しています。トランスパイラ、型チェッカー、LSP、VS Code拡張まで備えた本格的なツールチェーンを持ち、単なるアイデアの域を超えています。AIが計算の基本要素になる時代において、プログラミング言語がどう進化すべきかを考えるきっかけとなるプロジェクトです。


📎 元記事: https://dev.to/elias_hourany_5735ea9eac2/i-built-a-programming-language-where-think-is-a-keyword-1p2i

コメント

タイトルとURLをコピーしました