概要
- Mysticalは 魔法陣風のPostScript表記 を目指す独自プログラミング言語案。
- リング構造 で配列や辞書などのデータ構造を可視化・記述する特徴。
- シジル(記号)や文字列 を独自形状で表現し、可読性と装飾性を両立。
- 実行可能なインタプリタは未提供で、主に 可視化・表現手法 として提案。
- 他言語への応用可能性 や今後のレイアウト最適化も議論。
Mystical: 魔法陣風PostScript記述システム
基本構造とリングの種類
- Mysticalは リング(円環) を基本単位とし、 外周から内周へ 情報が流れる構造を採用。
- 各リングは 3:00(右端)から反時計回り に内容が展開されることを原則とする。
- リングには以下3種類が存在:
- 実行可能配列 :PostScriptの
{ }に対応、内外に単純な円、内部に星印、開始/終了点は錬金術記号で表現。 - 非実行配列 :
[ ]に対応、星印なし、開始/終了は三角形で示す。 - 辞書 :
<< >>に対応、多角形+二重外周+単一内周、開始/終了は配列と同じ記号で表現。
- 実行可能配列 :PostScriptの
サブリングと入れ子構造
- サブリングは 親リングとの接続点 から開始し、 小円や点でリンク を表現することが可能。
- PostScript上の
[ ]や<< >>の複雑なネストには非対応な場合あり、 非推奨な使い方 には注意喚起を行うこと。
テキスト・シジルと表記法
- リングの縁には テキストまたはシジル(記号) を配置。
- PostScriptの
/nameは 三角形内または重ね文字 で表現し、 文字列 ((text))はカルトゥーシュ状の囲みで表現。 - 標準シジルは 演算子やキーワード を視覚的に表現、例:
dup,add,arc,strokeなど。 - ユーザー定義シジル も追加可能で、1単位四方内に収める設計指針を推奨。
定義の省略記法(リガチャ)
/name { ring } defという関数定義パターンには 専用リガチャ (省略記法)を採用し、 defシジルを省略 して可読性・省スペース性を向上。- この省略記法は 実行可能配列内限定 で、辞書内では適用しない設計。
Mystical画像生成関数
"mystical.ps"内に以下の 描画関数 を用意:mystical:配列・xarray・dictをMystical形式で描画、必要に応じて再帰的にサブ構造を描画。mystical_evoke:辞書内の名前を参照して描画。mystical_evoke_label:名前付きでラベルを付与し、シジルを正立させて描画。_unscaled付き関数はスケーリングせず、リング幅1単位で大きく描画。
レイアウトと現状課題
- 現状の実装は 衝突回避重視で余白が多く、最適化余地あり。
- 例示画像では レイアウト手動調整 を実施、今後は自動レイアウト改善を目指す提案。
プログラミング言語としての位置付け
- 実行エンジンは未実装、人間が読んでPostScriptへ変換し実行する前提。
- 表現手法・可視化ツール としての側面が強い設計思想。
他言語への応用可能性
- Forthのような演算子中心言語 には応用可能性あり。
- 複雑な文法やネスト が多い言語では、リング増加による過剰な複雑化の懸念を指摘。
ダウンロード・情報源
- GitHubやCodeberg でソース公開。
- 詳細・サンプル・標準シジル一覧は公式リポジトリ参照を推奨。
- 提案 :魔法陣風プログラム表現手法
- 確認 :PostScript構文との対応関係と可視化ルール
- 設計 :リング構造・シジル・省略記法の導入
- 注意 :非対応なPostScript構文やレイアウト課題
- 展望 :他言語応用可能性・自動レイアウト改善