描画できる言語とは何か
https://gyazo.com/bcff2772e8c47f88c583b582e44fdd72
「図形を描画できる言語」と呼ばれるものは、
code:描画言語
言語 + 実行環境 + 描画API
の組として、「描画」という能力を持っている
という状態
code:eg
JavaScript + ブラウザ + Canvas API
Java + JVM + AWT / Swing / JavaFX
Processing + 独自ランタイム + drawing API
PostScript + プリンタ / レンダラ
このどれも、
言語単体では「円」も「線」も知らない
「円とは何か」「どのピクセルを塗るか」を
知っているのは 環境側のAPI
言語は単に
code:Js
ellipse(100, 100, 50, 50);
という「記号列」を解釈して
「環境が用意した“円を描く装置”を呼び出している」だけ
APIが“ない”場合は本当に描画できないのか?
「直接はできない」が
しかし、
数値や文字を出力できる
その出力を“別のプログラム”が受け取れる
なら、間接的には描画できる
code:eg
10 10
100 10
100 100
10 100
という数列を stdout に吐くだけの言語があったとして、
その出力を
Processing や p5.js 側で読み取り
「これはポリゴンの頂点だ」と解釈して描画する
という構造を作れば、
その言語は「図形を描く言語」として“振る舞う”
ことになる
〜〜〜〜〜〜〜〜〜〜
図形を“直接”描画するには
→ 描画API(あるいはそれに相当する環境)が必須
しかし
→ 言語そのものがそれを内蔵している必要はない
出力を「図形として解釈する別の層」があれば
→ どんな言語でも“描画言語”になりうる
「描画できる言語」とは、
言語の性質というより
言語が“どんな世界と接続されているか”の問題
〜〜〜〜〜〜〜〜〜〜
たとえばPietでWebで描画したい場合、
Piet 自体は Canvas API を使えないが、
Piet インタプリタを JavaScript で書けば、
Piet の出力を Canvas に“接続”することはできる
インタプリタ例
piet-interpreter-js
PietをJavascriptで