mastodon.cardina1.red は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。

サーバーの情報

3
人のアクティブユーザー

その言い方に合わせるなら、「構文解析器に食わせる前に破棄できるトークンが少ない (あるいは不規則である) のが不満」と言うべきか。

字句解析器が空白でトークンを切って構文解析器が空白トークンを無視する、みたいなのは字句解析器が文法に関係なく (まあ "" 内とかではモード変えるだろうけど) 空白ノードを切れるし構文解析器にそれを渡さないことすらできるけど、「特定の文脈でだけ空白が無視されない」は構文解析器が空白ノードを常に受け取って明示的に無視しないといけないから、「早い段階で無視できる部分」が減ってしまいパースするときの負担が大きくなる

トークンの間引きを構文解析の遅い段階まで認めない (あるいは別の表現をすれば、文脈に依存する複雑な条件を課す) というのは、早い段階で認める (文脈に依存しない簡潔な条件を課す) 文法よりも、客観的に “複雑” であるといえると思う (少なくともそういう次元が文法の複雑性に存在する/定義できると思う)

字句解析と構文解析という機構を内面化しているといえばそうなのだろうけど、この文脈においてその価値は「無視できるパーツが解釈の早い段階で明らかになる」という性質にあり、たぶん字句解析と構文解析で納得しやすいというのはその性質から自然と生えてくるボーナスなのではないかという気がする (確証はない)

たとえば行頭、たとえばコードブロックの中、たとえば特定のコマンド実行後、そのような追跡の必要のある「条件」が解釈における後ろの方の段階まで引っ張られれば引っ張られるほど、一貫性が弱くなっていき、同時に認知への負荷が高くなる。

らりお・ザ・何らかの🈗然㊌ソムリエ

ふーむ、つまり私は「文法が簡潔で一貫していること」が「意味に関係ない部分を認識から切り離す工程の負荷が小さいこと」と同義であると言いたかったわけか。なるほどね。