ちょっと思いついたので備忘録に書いておく。
フローチャートを圏とすると、文(statement)が対象であり、計算の順序が射であるような圏ができる。
今、Algol60言語より前のブロックが存在しない疑似コードを次のように書いてみる。1行が文となる。
x = 12;
if x >0 : x = x + 1;
while x < 15 : x = x + 1;
そうすると、
文「x=12;」-> 文「if x >0 : x = x + 1;」-> 文「while x < 15 : x = x + 1;」
であり、このダイクストラ連接は合成射となる。
if文に着目すると、何もしなかった暗黙のelse文が挿入されるわけだから
前の文「x=12;」-> 文「if x >0 : x = x + 1;」-> 後の文「while x < 15 : x = x + 1;」
前の文「x=12;」 -> 後の文「while x < 15 : x = x + 1;」
となり、このダイクストラ選択は可換図式である。
最後に、文「while x < 15 : x = x + 1;」に注目すると、結局のところ、一つの文をダイクストラ繰り返ししているわけなのだから、恒等射となる。
ブロックはどうなるのかは調査中である。結論として、構文論と数学的構造は、意味論よりも深遠な関係にあるのではないかと思われる。
追記
暗黙のelse文がなくとも、if文と前後の文において、三角形のような可換図式が成立するので、訂正した。