すべての入力で停止し、他の入力で停止するすべてのマシンを許可するプログラミング言語を記述することは不可能です。ただし、このようなプログラミング言語を標準の複雑度クラスに簡単に定義できるようです。特に、すべての効率的な計算と効率的な計算のみを表現できる言語を定義できます。
たとえば、ようなものの場合、お気に入りのプログラミング言語を使用し、プログラムを記述した後(Turing Machine対応)、ヘッダーに3つの値を追加します:整数、整数、およびデフォルト出力。プログラムがコンパイルされると、出力チューリングマシン入力与えられたのサイズの実行上のためのステップ。ステップが開始する前にが停止しない場合、デフォルトの出力出力しますM ′ c k d M x n M ′ x c n k M ′ c n k d P。誤解がない限り、このプログラミング言語を使用すると、すべての計算を表現できます。ただし、この提案された言語は本質的に興味のないものです。
私の質問:計算可能な関数(すべての効率的に計算可能な関数など)のサブセットを非自明な方法でキャプチャするプログラミング言語はありますか?ない場合、これには理由がありますか?