Re[6]: *
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 09.06.05 11:19
Оценка:
Здравствуйте, 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 *

между каждой "пользовательской" лексемой стоит не более одной звездочки. Меньше одной звездочки поставить нельзя — мы договорились пробельные символы не перегружать. Значит минимум достигнут. А то что этого достаточно, следует из смысла рассматриваемых инструкций.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.