Cili është ndryshimi midis korrektësisë së plotë dhe korrektësisë së pjesshme?


përgjigje 1:

Një deklaratë e plotë e saktësisë është gjithashtu një deklaratë e saktësisë së pjesshme. Korrektësia e pjesshme është më e dobët sepse duhet ndihmë shtesë e 'S përfundon' për të arritur në përfundimin: R aplikohet në gjendjen përfundimtare.

Për një specifikim të saktësisë së pjesshme {Q} S {R} mund të merrni informacionin e mëposhtëm: Nëse ekziston një gjendje fillestare që plotëson Q, S mund ose nuk mund të përfundojë. Nëse S mbaron, pasi të ekzekutoni S, ju arrini një gjendje përfundimtare që përmbush R. Nëse jo, R është i papërdorshëm sepse nuk ka gjendje përfundimtare.

Për shembull:

x == 10} gjatë (y! = 0): y = y - 1 x = 0 {x == 0}

Shtë një deklaratë e saktësisë së pjesshme. Nëse y është inicializuar me një numër të barabartë ose më të madh se 0, S mbaron dhe atëherë x është 0. Nëse y fillon me një numër negativ, S përsëritet përgjithmonë, dhe pasi nuk mbaron, nuk do të arrini një gjendje. 'pas ekzekutimit të S.'

Në fakt, R mund të jetë gjithçka nëse S është një lak i ngordhur. Për shembull për çdo Q dhe R:

{Q} gjatë (e vërtetë): y = y - 1 {R

është gjithmonë një tregues i pjesshëm i korrektësisë.

Nëse Q nuk është mjaft i fortë, ju nuk mund të garantoni përfundimin e S, e lëre më të justifikoni shtetin pasi S është ekzekutuar. Në këtë rast, mund të shtoni një kusht manualisht: S ndërpritet. Argumenti mund të vazhdohet me Q dhe atë.

Për specifikimin e saktësisë së plotë {Q} S {R}, Q është mjaft i fortë për të garantuar përfundimin e S në mënyrë që të mund të konkludoni që S është përfunduar dhe gjendja përfundimtare R është e kënaqur.

Për shembull:

x == 10} gjatë (x! = 0): x = x - 1 {x == 0}

është një deklaratë e plotë e saktësisë.

Nga rruga: Unë nuk jam i sigurt nëse përgjigja është e saktë, pasi pyetja shënohet me korrektësi politike. Ndërsa përkufizimi në pyetje duket i njëjtë si në shkencën e kompjuterave.