OberonCore
https://forum.oberoncore.ru/

что означает одинарная кавычка?
https://forum.oberoncore.ru/viewtopic.php?f=35&t=6543
Страница 1 из 1

Автор:  snark [ Среда, 22 Январь, 2020 17:42 ]
Заголовок сообщения:  что означает одинарная кавычка?

что означает одинарная кавычка (здесь пример из самого конца модуля Files).

stdDir' = NIL
stdDir = d
stdDir' # NIL
stdDir = stdDir'
dir = d

Автор:  adimetrius [ Среда, 22 Январь, 2020 21:24 ]
Заголовок сообщения:  Re: что означает одинарная кавычка?

Расшифровка:
Код:
Pre     (*   Предусловие: *)
d # NIL 20 (* Если процедура будет вызвана с d = NIL, то получится трап 20 - т.е. ее нельзя вызывать с d = NIL *)

Post  (* Постусловие: *)
stdDir' = NIL      (* в случае, когда прежнее значение stdDir было NIL  *)
   stdDir = d   (*     новое значение stdDir будет равно d  *)
stdDir' # NIL     (* а в случае, когда прежнее значение stdDir не было NIL *)
   stdDir = stdDir'     (* новое значение stdDir будет равно прежнему значению stdDir - т.е. не изменится *)
dir = d   (* новое значение dir будет равно d (в любом случае)  *)


Это не часть языка, это соглашение, принятое в математических текстах. Например, q' читается "ку штрих". В применении к документации, обычно это означает "новое значение q" либо "прежнее значение q".

Например, пусть есть процедура Abs (VAR x: INTEGER). Ее можно описать так: "Процедура Abs помещает в переменную x значение модуля того значения, которое ей было передано в x". А можно лаконично, точно и математично - так:

Post
x = ABS(x')

Здесь x означает Новое значение х, а х' - прежнее значение x. (Иногда наоборот). Слово Post означает "постусловие", а Pre - предусловие. Предусловие - это логические соотношения, которые должны быть обеспечены вызывающей процедурой; постусловия - это логические соотношения, которые вызванная процедура обеспечивает по завершении своей работы. Если вы не знакомы с пред-, пост-условиями и инвариантами, могу порекомендовать Грис Д. "Наука программирования" - увлекательное чтение и возможность существенно прокачать хардскилы в программировании-в-малом.

Автор:  Александр Ильин [ Воскресенье, 26 Январь, 2020 14:27 ]
Заголовок сообщения:  Re: что означает одинарная кавычка?

Одиночная кавычка всегда обозначает новое/модифицированное/выходное значение переменной.
Если где-то используется в значении прежнего значения, это ошибка в документации.

Автор:  adimetrius [ Воскресенье, 26 Январь, 2020 16:18 ]
Заголовок сообщения:  Re: что означает одинарная кавычка?

Александр Ильин писал(а):
Одиночная кавычка всегда обозначает новое/модифицированное/выходное значение переменной.
Если где-то используется в значении прежнего значения, это ошибка в документации.


Согласен с Александром; но, кмк, в ББ-документации всегда "наоборот": апострофом обозначают прежнее.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/