Biasanya saya melihat bahwa dalam representasi semantik operasional struktural untuk loop sementara, status program tidak berubah:
Bagi saya, ini tidak intuitif, jika statusnya tidak berubah (yaitu status memori tetap sama) maka akan tetap benar dan program tidak akan pernah berakhir.
Adakah yang bisa menjelaskan mengapa negara tidak berubah dalam aturan ini?
Jawaban:
Dalam semantik bahasa pemrograman, gagasan tentang keadaan program bukanlah gagasan filosofis yang samar, tetapi konsep matematika yang sangat tepat. Sebuah negara dalam kecil-langkah semantik operasional adalah fungsi parsials
yang mencatat nilai-nilai variabel. Jadi, jika , maka variabel x memiliki nilai v . Negara tentu saja merupakan fungsi parsial, karena hanya masuk akal untuk mencatat nilai-nilai variabel yang benar-benar terjadi.sx = v x v
Aksioma yang berlangsung
hanya memberitahu kita bahwa kita membuka loop sementara ke dalam pernyataan kondisional, salah satu cabangnya berisi loop. Tidak ada variabel yang akan mengubah nilainya karena ini, dan karena alasan ini keadaan tidak berubah.
sumber
Negara dapat berubah dalam langkah pengurangan berikutnya karena di sisi kanan
yang -loop dijaga (diawali) oleh S . Perhitungan S dapat mengubah keadaan sehingga kondisi B dapat dievaluasi menjadi f a l s e .w h i l e S S B fa l s e
sumber
Negara tidak berubah ketika kita mempertimbangkan B untuk memutuskan apakah untuk melakukan satu iterasi dari loop, tetapi dapat berubah nanti ketika kita menjalankan tubuh S . Jadi, pada saat kita mempertimbangkan B , bisa ada perubahan σ .σ B S B σ
sumber