Взагалі, коли математика використовується для вивчення деякого X , спочатку потрібна модель X , а потім розробляється теорія, набір результатів про цю модель. Я припускаю , що теорія може бути названа «теоретичною основою» для X . Тепер встановіть X = обчислення. Існує багато моделей обчислень, багато з яких включають "стан". У кожної моделі є своя "теорія", і іноді можливо "перекласти" між моделями. Я вважаю, що важко сказати, яка модель є "базовішою" --- вони просто розроблені з різними цілями на увазі.
Машини Тьюрінга були розроблені для визначення того, що можна обчислити . Тож вони роблять хорошу модель, якщо вам важливо, чи існує алгоритм певної проблеми. Цією моделлю іноді зловживають, щоб вивчити ефективність алгоритмів або жорсткість проблем, під приводом того, що це досить добре, принаймні, якщо ви дбаєте лише про поліном / не многочлен. Модель оперативної пам’яті наближається до реального комп’ютера і тому краще, якщо ви хочете точний аналіз алгоритму. Поставити нижні межі на жорсткість проблем краще невикористовуйте модель, що занадто сильно нагадує сучасні комп’ютери, оскільки ви хочете охопити широкий спектр можливих комп'ютерів, при цьому залишаючись більш точними, ніж просто поліном / не многочлен. У цьому контексті я бачив, наприклад, використану модель клітинного зонда.
Якщо ви дбаєте про правильність , то все ж корисні інші моделі. Тут ви маєте оперативну семантику (яка, як я б сказав, є аналогом обчислення лямбда для державних обчислень), аксіоматичну семантику (розроблену в 1969 році Хоаром на основі індуктивних тверджень Флойда з 1967 року, яку популяризує Кнут у "Мистецтві комп'ютерного програмування" , том 1) та ін.
Підводячи підсумок, я вважаю, що ви після моделей обчислень. Існує багато таких моделей, розроблених з різними цілями на увазі, і багато мають державні, тому вони відповідають імперативному програмуванню. Якщо ви хочете знати, чи можна щось обчислити, то подивіться на машини Тьюрінга. Якщо ви дбаєте про ефективність, подивіться на моделі ОЗУ. Якщо ви дбаєте про правильність, подивіться на моделі, які закінчуються на "семантиці", наприклад, операційній семантиці.
Насамкінець, зазначу, що в Інтернеті є велика книга лише про Моделі обчислень Джона Савиджа. Йдеться переважно про ефективність. Для частки коректності рекомендую почати з класичних робіт Флойда (1967) , Хоара (1969) , Дейкстри (1975) та Плоткіна (1981) . Всі вони досить круті.