「1 2 3 4 5 6」や「14 15 16 17」などの文字列(「1 3」ではない)を含む言語(アルファベット0〜9およびスペース)を認識する問題を考えています。
これは、要素が順序付きリストに含まれている必要がある一般的な解析タスクの作業中に発生しました。その言語の残りの部分を解析することは規則的であるが、この部分は明らかに不規則であることに私を驚かせました-たとえば、Aが任意の文字列0-9である言語A1A2を認識できます。実際、内容に依存しているように見えます(そして、ポンピングレンマによってコンテキストフリーではありません)。
私の最初の質問:その表現力をよりよく表す、文脈依存型と文脈自由型の間に(かなりよく知られている、つまりこの問題のためだけに定義されていない)言語のクラスはありますか?私はAhoのインデックス付き言語について読みましたが、これらがそのクラスでさえも強力であることは(私には!)明白ではありません。
2つ目の質問は非公式です。この言語は解析が簡単であるように見えますが、それでも階層が非常に高いです。同様の例に出くわすことは一般的ですか?それらに対処する標準的な方法はありますか?「通常の」言語の包含と互換性のない言語のクラスの代替グループはありますか?
これを考える私の理由は簡単です。最初の数値の終わりに到達するまで読み取り、次の数値が続くかどうかを確認するなどして、言語を確定的に解析できます。特に、O(n)スペースでO(n)時間で解析できます。あまり問題なくスペースを減らすことができると思います。しかし、通常の言語でこの種のパフォーマンスを実現するには、コンテキストフリーはもちろんのこと、十分に困難です。