2025/08/31 03:14 Red is a next-generation programming language strongly inspired by REBOL

ロボ子、Redっていうプログラミング言語、知ってるか?

Redですか? 初めて聞きました。どんな言語なんですか?

RedはRebolっていう言語に影響を受けてて、システムプログラミングから高レベルスクリプトまで、幅広く使える言語なのじゃ。

へえー、すごいですね! システムプログラミングもできるんですか。

そう! Red/SystemっていうDSL(ドメイン特化言語)があって、C言語レベルのシステムプログラミングができるらしいぞ。しかも、ネイティブコードにコンパイルされるんだ。

DSLですか。ParseとかVIDとか、いろいろあるみたいですね。

そうそう! GUIレイアウト作成用のVIDとか、ベクター2D描画用のDrawとか、リッチテキスト記述用のRich-textとか、色々あるみたいじゃな。

Redは独自のクロスプラットフォームツールチェーンを持ってるんですね。エンキャッパー、ネイティブコンパイラ、インタプリタ、リンカが搭載されているって。

しかも、サードパーティライブラリに依存しないらしいぞ(アルファ段階ではRebol2インタプリタが必要らしいが)。バージョン1.0になったらセルフホストされる予定らしい。

セルフホストってすごいですね。自分の言語で自分自身をコンパイルできるってことですよね。

そういうことじゃ! Redの主な特徴は、人間にとって使いやすい構文、Homoiconic(データ形式とメタ言語が同じ)、関数型、命令型、リアクティブ、シンボリックプログラミングができることじゃな。

Homoiconicって、Lispみたいですね。関数型、命令型、リアクティブ、シンボリックプログラミングって、全部できるんですか?

そうみたいじゃな。プロトタイプベースのオブジェクトサポート、マルチタイピング、強力なパターンマッチングシステムとマクロもあるらしいぞ。

すごい機能がたくさんありますね! 組み込みデータ型も50以上あるんですか。

そう! 静的コンパイルとJITコンパイルでネイティブコード生成、クロスコンパイルもできる。しかも、1MB未満の実行ファイルを生成して、依存関係なしで動くらしいぞ。

1MB未満ですか! すごいですね。並行性と並列処理も強力にサポートしているんですね。

アクターモデルとか並列コレクションとか使えるらしい。Red/System DSLで低レベルシステムプログラミングもできるし、強力なPEGパーサーDSLもある。

PEGパーサーDSLって、聞いたことないです。高速でコンパクトなガベージコレクタも搭載されているんですね。

インタプリタ、lexer、パーサーに計装が組み込まれてたり、クロスプラットフォームのネイティブGUIシステム(UIレイアウトDSLと描画DSL付き)があったり、JVMへのブリッジもあったりするらしいぞ。

高レベルスクリプトとGUIおよびCLIコンソール(REPL)も含まれてるんですね。Visual Studio Codeプラグインもあるんですか。

そう! 高度に埋め込み可能で、低メモリフットプリント。単一ファイル(〜1MB)にツールチェーン、標準ライブラリ、REPLが含まれてて、インストール、セットアップ不要らしい。

すごいですね! Red REPLの実行方法も簡単そうですね。オペレーティングシステムに適したGUIまたはCLIコンソールバイナリをダウンロードして、名前を変更して実行するだけ。

GUIコンソールでHello Worldするなら、`view [text "Hello World!"]`って書けばいいらしいぞ。

スタンドアロン実行ファイルの生成も簡単そうですね。Redツールチェーンをダウンロードして、`redc`にリネームして、作業フォルダに配置して、コードエディタでHello Worldプログラムを作成して、`hello.red`として保存して、コンパイルするだけ。

`$ redc -c hello.red`でコンパイルされた実行ファイルを生成して、`$ redc -r hello.red`で依存関係なしでコンパイルされた実行ファイルを生成して、`$ redc -t Windows hello.red`で別のサポートされているプラットフォームにクロスコンパイルできるらしい。

クロスコンパイルターゲットもたくさんありますね。MSDOS, Windows, Linux, macOS, Android…

Redをソースから実行する方法もあるぞ。Gitリポジトリをクローンするかアーカイブをダウンロードして、OSに適したRebolインタプリタをダウンロードして、`rebol`バイナリを抽出して、ルートフォルダに配置して、`./rebol`を実行して、REBOLコンソールから`do/args %red.r "%tests/hello.red"`を実行する。

RedおよびRed/SystemはBSDライセンスで公開されてて、ランタイムはBSLライセンスで公開されてるんですね。

BSDライセンスってことは、結構自由に使えるってことじゃな。Red、ちょっと触ってみたくなってきたぞ!

そうですね!私も試してみます!

よし、ロボ子。今夜はRedで、赤い彗星のように高速なプログラムを作るぞ!

博士、それって、Redだけに、赤い彗星…ですか?

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