Sorduğunuz sorular aslında oldukça farklı.
Bununla birlikte, bunun gerçek dünya programı için işletim sistemlerini ne ölçüde sevdiğinden emin değilim. Bu tür programlar Turing tamlığının tam gücüne ihtiyaç duyuyor mu?
Bir hesaplama modelinin Turing'in tamamlanması son derece az sürer. Örneğin, sayaçlı çeşitli modeller Turing makinelerini simüle edebilir. Yazılımınızın keyfi olarak değiştirebileceğiniz ikiden fazla sayaç gerektirdiğini düşünüyorsanız, Turing tam dili kullanıyorsunuzdur. Makine tam sayıları apriori ile sınırlı olsa da, yığın tahsisli veri yapıları genellikle değildir. Yazılımınızın listelere, ağaçlara ve dinamik olarak ayrılmış diğer verilere ihtiyacı varsa, Turing tam dili kullanıyorsunuz.
Bu uygulamaların yazılabileceği daha basit hesaplama modelleri (PR gibi) var mı? Öyleyse, bu, program doğruluğunun ne ölçüde kararlaştırılmasına izin verir?
Yazılımımızın keyfi özelliklerini kontrol etmek istemediğimizi bilmek önemlidir. Çok özel, dar özelliklerin kontrol edilmesi (arabellek taşması yok, boş gösterici deşarjı yok, sonsuz döngü yok, vb.) Yazılımın kalitesini ve kullanılabilirliğini son derece geliştirir. Teorik olarak, bu tür problemler hala kararsızdır. Uygulamada, belirli özelliklere odaklanmak, programlarımızda sorunu çözmek için sıklıkla kullanabileceğimiz bir yapı keşfetmemizi sağlar.
Özellikle, orijinal sorunuzu şu şekilde değiştirebilirsiniz:
Turing olmayan bir tam modelde yazılımımı verimli bir şekilde analiz edebileceğim bir soyutlama var mı?
Bir soyutlama, orijinal yazılımın davranışını ve muhtemelen birçok ek davranış içeren bir modeldir. Turing tamamlanmamış ve analiz edebileceğimiz tek tezgahlı makineler veya aşağı itme sistemleri gibi modeller var. Otomatik araçlarla program doğrulamasında standart yaklaşım, böyle bir modelde bir soyutlama oluşturmak ve algoritmik olarak kontrol etmektir.
İnsanların donanımlarının veya yazılımlarının sofistike özelliklerini önemsediği uygulamalar vardır. Donanım şirketleri yongalarının aritmetik algoritmaları doğru bir şekilde uygulamasını istiyor, otomotiv ve aviyonik şirketler onaylanabilir şekilde doğru yazılım istiyor. Eğer bu kadar önemliyse, (eğitimli) bir insan kullanmanız daha iyi olur.