私はほとんど何でも書くことができる言語にはあまり興味がありませんが、あなたが書いたものが終了するという付随する証拠を書く必要があります。
私は本質的に、構造によって特定の複雑さのクラスに本質的に制限されている言語のデザインスペースに興味があります。
サブチューリング完全言語には何らかの理論階層がありますか?
私はほとんど何でも書くことができる言語にはあまり興味がありませんが、あなたが書いたものが終了するという付随する証拠を書く必要があります。
私は本質的に、構造によって特定の複雑さのクラスに本質的に制限されている言語のデザインスペースに興味があります。
サブチューリング完全言語には何らかの理論階層がありますか?
回答:
すべてのプログラムが終了するプログラミング言語のクラスはたくさんあります。強制終了の最も一般的な形式は、タイプによるものです。計算を終了するためのタイピングシステムの最もよく発達した理論は、タイピングを3つの直交軸に分解するBarendregtのLambdaキューブの理論かもしれません。
単純に型付けされた -calculusなどの終了言語から始めて、これら3つの軸の任意の組み合わせを追加して終了を保持できます。
これは、カリーハワード通信を介して、ロジックと密接な関係があります。
複雑さのクラスをキャプチャするタイプを含む、多くの拡張と改良があります。
ベルラントーニ&クックのA New Recursion-Theoretic Characterization of Polytime Functionsの基本的な作業に続いて、Martin Bergerがコメントで述べているように、線形論理への強いつながりを備えた、総言語による複雑性クラスの単純な特性化に関する多くの作業がありました。
この作業に基づいて、他の複雑性クラスが特徴付けられました。LeivantとMarionは、PSPACEとELEM(最後の1つは特に素晴らしい)の特性を与えました。
また、上の作業が行われていますLOGSPACE LeivantとRamyaaで再び、。