はじめに
本記事はプログラミング言語を自作したいがために様々に引っかかったところについてと、詳細設計をちゃんとやるという目標のもと、自身の考案した言語について再解釈を試みようと思った次第で書きます。
浮かび上がった問題を考える
勘違いの精査
式志向の言語であるため、プログラムは全て式であるとしたところ…左再帰の問題に直面しました。
問題を俯瞰するために、この言語の構造が圏論上の随伴関手定理に従うことに再注目する方向で再考して行くのが、当面の目標となりました。
これをPEGといったような素直な構文解析器の生成を再度の目標と設定して、再挑戦していきます。
勘違いについて…
EBNF上で示していた部分ですが…
start = expression* ;
expression = ...
の段階で、二分木を構成していない…ので、随伴関手定理においてのタプル、関数、評価の間に横たわる関係性の整理から入るべきだと気づきました。
start = pair | lambda ;
となるように調整をかけます
言語の命名について…
この言語は誤謬問題を解決したいがために、演算子だけでチューリング完全にするという目標を持っています。
よって、その目的は手話に近いのでは? 記号言語であれば、signが妥当では?と思っています。
名前と思想は、この言語を表すためにとても重要ですね…
なお、生粋のJSerで中年の自分にこんな高い目標を設定して大丈夫なのか?は無視して勉強しながら作り上げたいと思っています。