Niemożliwe jest napisanie języka programowania, który zezwala wszystkim maszynom, które zatrzymują się na wszystkich wejściach i żadnych innych. Wydaje się jednak, że łatwo jest zdefiniować taki język programowania dla dowolnej standardowej klasy złożoności. W szczególności możemy zdefiniować język, w którym możemy wyrazić wszystkie wydajne obliczenia i tylko wydajne obliczenia.
Na przykład, dla czegoś takiego jak : wybierz swój ulubiony język programowania, a po napisaniu programu (odpowiadającego Turing Machine ) dodaj trzy wartości do nagłówka: liczba całkowita i liczba całkowita oraz domyślne wyjście . Po skompilowaniu programu wypisz maszynę Turinga która otrzymała dane wejściowe rozmiaru uruchamia na dla c n k kroków. Jeśli M ′ nie zatrzyma się przed wykonaniem kroków c n k , wypisz domyślne wyjście d. O ile się nie mylę, te języki programowania pozwolą nam wyrazić wszystkie obliczenia w i nic więcej. Jednak ten proponowany język z natury nie jest interesujący.
Moje pytanie: czy istnieją języki programowania, które przechwytują podzbiory funkcji obliczeniowych (takich jak wszystkie wydajnie obliczalne funkcje) w nie-trywialny sposób? Jeśli nie, czy istnieje ku temu powód?