Tamamilə düzgünlük və qismən düzgünlük arasındakı fərq nədir?


cavab 1:

Tam bir düzgünlük ifadəsi də qismən bir düzgünlük ifadəsidir. Qismən düzgünlük daha zəifdir, çünki nəticəyə çatmaq üçün 'S terminates' -in əlavə köməyə ehtiyacı var: R son vəziyyətdədir.

Qismən düzgün bir dəqiqləşdirmə üçün {Q} S {R} üçün aşağıdakı məlumatları əldə edə bilərsiniz: Q, S-yə cavab verən başlanğıc şəraiti varsa və ya bitməsə. S başa çatırsa, S işləndikdən sonra R yerinə yetirən son bir vəziyyətə çatırsınız. Yoxdursa, R istifadə edilə bilməz, çünki son vəziyyət yoxdur.

Məsələn:

{x == 10} zamanı (y! = 0): y = y - 1 x = 0 {x == 0}

Qismən dəqiqlik ifadəsidir. Əgər 0-a bərabər olan və ya daha çox olan bir rəqəmlə başlanılıbsa, S bitib sonra x 0-dır. Əgər y mənfi nömrə ilə başlayırsa, S əbədi təkrarlanır və sona çatmadığı üçün bir vəziyyətə çata bilməzsiniz. 'S. edam edildikdən sonra

Əslində, R ölü bir halqa olarsa, R hər şey ola bilər. Məsələn, hər Q və R üçün:

{Q} (əsl) zamanı: y = y - 1 {R}

həmişə düzgünlüyün qismən bir göstəricisidir.

Q kifayət qədər güclü deyilsə, S-nin tamamlanmasına zəmanət verə bilməzsiniz, yalnız S-ni icra etdikdən sonra dövləti doğruldur. Bu vəziyyətdə əl ilə bir şərt əlavə edə bilərsiniz: S abort. Mübahisəni Q ilə davam etdirmək olar.

Tam düzgün bir dəqiqləşdirmə üçün {Q} S {R}, S-nin ləğvinə zəmanət verə biləcək qədər güclüdür ki, S-nin sona çatdığını və son R vəziyyətinin təmin olunduğunu başa düşə bilərsiniz.

Məsələn:

(x! = 0) zamanı {x == 10}: x = x - 1 {x == 0}

tam dəqiqlik ifadəsidir.

Yeri gəlmişkən: cavabın düzgün olub olmadığına əmin deyiləm, çünki sual siyasi düzgündür. Sualdakı tərif kompüter elmində olduğu kimi eyni olsa da.