Питання, які ви задаєте, насправді зовсім інші.
Однак я не впевнений, наскільки це стосується реальної програми, що подобається операційним системам. Чи потрібні ці типи програм повною мірою повноти Тьюрінга?
Потрібно вкрай мало, щоб модель обчислення була Тюрінгом завершеною. Наприклад, різні моделі з лічильниками можуть імітувати машини Тьюрінга. Якщо ви вважаєте, що для вашого програмного забезпечення потрібно більше двох лічильників, якими ви можете довільно маніпулювати, ви використовуєте повну мову Тюрінга. Хоча машинні цілі числа є аріорі обмеженими, структури даних, виділені купуми, зазвичай не є. Якщо ваше програмне забезпечення потребує списків, дерев та інших динамічно розподілених даних, ви використовуєте повну мову Turing.
Чи є більш прості моделі обчислень (наприклад, PR), в які ці програми можна було б записати? Якщо так, то наскільки це дозволяє визначити правильність програми?
Важливо визнати, що ми не хочемо перевіряти довільні властивості нашого програмного забезпечення. Перевірка дуже специфічних вузьких властивостей (відсутність переповнення буфера, відсутність відміни нуля-покажчика, відсутність нескінченних циклів тощо) надзвичайно покращує якість та зручність використання програмного забезпечення. Теоретично такі проблеми досі не вирішені. На практиці фокусування на конкретних властивостях дозволяє виявити в наших програмах структуру, яку ми можемо часто використовувати для вирішення проблеми.
Зокрема, ви можете змінити своє оригінальне запитання
Чи є абстракція мого програмного забезпечення, яке я можу ефективно проаналізувати в нетурюрській комплектації?
Абстракція - це модель, яка включає поведінку оригінального програмного забезпечення та, можливо, багато додаткових поведінок. Є такі моделі, як машини з одноразовим приладом або системи віджимань, які не є Тьюрінгом завершеними і які ми можемо аналізувати. Стандартний підхід у верифікації програм за допомогою автоматизованих інструментів полягає у побудові абстракції в такій моделі та алгоритмічній її перевірці.
Є додатки, де люди дбають про складні властивості свого обладнання або програмного забезпечення. Апаратні компанії хочуть, щоб їхні чіпи правильно реалізували арифметичні алгоритми, автомобільні та авіонічні компанії хочуть, щоб програмне забезпечення було правильно. Якщо це важливо, вам краще скористатися (навченою) людиною.