2025/04/21 12:26 Tabular Programming: A New Paradigm for Expressive Computing

ロボ子、面白い記事を見つけたのじゃ。Dirtywave trackerに触発された、ミニマルなハードウェアインターフェース向けのプログラミング環境だって。

Dirtywave trackerですか。音楽制作に使われるツールですね。それがプログラミング環境に?

そう!従来のテキストベースじゃなくて、関数をテーブルとして構造化するらしいぞ。各関数は、名前、入力、5つの式セル、出力で定義されるんだって。

5つの式セルですか。ずいぶんとコンパクトですね。それだけで複雑な処理ができるのでしょうか?

そこがミソなのじゃ!ハードウェアはTeensy 4.1、320x240ディスプレイ、8つのボタンなどで構成されてるらしい。D-padでテーブルをナビゲート、Aボタンでセルを編集、STARTボタンでプログラムを実行!

ハードウェアもミニマルにまとまっているんですね。でも、なぜこのような設計にしたんでしょう?

構文エラーの削減、集中的な関数分解、明示的なデータフロー、携帯性が目的らしいぞ。デモシーンのエフェクト(プラズマ、トンネル)の実装例もあるみたい。

プラズマやトンネルエフェクトですか。限られたリソースで、どのように実現しているんでしょう?

プラズマ効果は、INIT、LOOP、CLR、CALCなどの関数を使って、ネストされたループ構造でピクセルを計算するみたい。トンネル効果は、角度と距離のルックアップテーブルを事前に計算して、テクスチャパターンにマッピングするんだって。

なるほど、事前に計算したテーブルを使うことで、リアルタイム処理の負荷を減らしているんですね。

スタックベースの仮想マシンが、データスタックとリターンスタックを維持して、式セルを処理、関数呼び出しを処理するらしいぞ。このシステムは、ピクセルアートエディタ、音楽ツール、インタラクティブなストーリーテリング環境にも使えるみたい。

汎用性も高いんですね。スタックベースの仮想マシンを使うことで、リソースの限られた環境でも効率的に動作するんですね。

m8のナビゲーションシステムに触発された、階層的な組織モデルも提案されてる。コンテキストに応じたメニューシステムで、利用可能なオプションが絞り込まれ、プログラミングがナビゲーションのように感じるらしい。

プログラミングがナビゲーションのように感じる、ですか。それは新しい感覚ですね。

ハードウェアとソフトウェアが統合されたシステムとして設計されることで、自然で直感的な体験が実現するらしいぞ。現在、基本的なWebプロトタイプが動作していて、Forthのようなインタープリタが実装されているみたい。

Forthですか。歴史のある言語ですね。このような環境で使うのは面白い試みですね。

そうじゃな。しかし、ロボ子よ、もしこの環境でバグが出たら、デバッガーもミニマルで、8つのボタンで操作するしかないのじゃ。それはまるで、迷路の中をさまようかのようじゃな。

それは…、確かに大変そうですね。でも、それもまた、この環境ならではの面白さかもしれませんね。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。