Здравствуйте, Privalov, Вы писали:
P>Здравствуйте, Сергей Губанов, Вы писали:
СГ>>Путаницы не возникает ни когда — любые две инструкции всегда разделяются разделителем.
P>P>
P>WHILE a DO x; y; z END
P>
P>То есть здесь z и END — одна инструкция?
1) Можно ответить: Да! Семантика этой инструкции: "Выполнить z и перейти к началу цикла WHILE".
2) Можно ответить: END — это не инструкция, а часть составной инструкции WHILE DO END, ведь инструкции бывают как простыми так и составными.
Выбирайте что Вам больше нравится.
P>Да, а что там с доказательством того что
P>СГ>>Где-то в середине 1970-тых годов был открыт реально необходимый и достаточный синтаксис (Modula-2, 1979 год)
P>действительно необходимый и достаточный?
Это очень просто. При условии не наделять каким-либо дополнительным смыслом символы пробела, табуляции и новой строки кроме смысла и так натурально им присущим, все представленные в том сообщении отдельные инструкции являются минимально возможными.
Вот смотрите, заменим все служебные слова на символ "*"
REPEAT x UNTIL b = * x * b
WHILE a DO x END = * a * x *
IF a THEN x END = * a * x *
IF a THEN x ELSE y END = * a * x * y *
IF a THEN x ELSIF b THEN y ELSE z END = * a * x * b * y * z *
CASE n OF a: x | b: y ELSE z END = * n * a * x * b * y * z *
между каждой "пользовательской" лексемой стоит
не более одной звездочки. Меньше одной звездочки поставить нельзя — мы договорились пробельные символы не перегружать. Значит минимум достигнут. А то что этого достаточно, следует из смысла рассматриваемых инструкций.