Владимир Паронджанов писал(а):
Вы пишите:
Info21 писал(а):
Переписать по-человечески на "русском" Обероне
Сделать это невозможно, потому что Дракон несоизмерим с Обероном.
Чтобы снять эту несоизмеримость, надо, в частности, добавить ветку и адрес.
Не могу согласиться с Вашим представлением о "настоящем"
псевдокоде. Я исхожу из того, что таковой ("настоящий") не существует в природе.
Каждый автор публикации сочиняет такой псевдокод,
который ему нужен.
Именно такое представление о псевдокоде
указано в Википедии. И я с ним согласен.
<...>
Мне кажется, на данном этапе дискуссии было бы
правильнее всего сказать,
что между нами существуют разногласия.
От всей души благодарю Вас за Ваши критические замечания.
Критика - воздух науки.
Уважаемые участники дискуссии!
Хотелось бы, чтобы "скрещивание копий" максимально заменялось согласованием позиций, посему - некоторые соображения.
Фёдор Васильевич, очевидно, имеет в виду, что текстовое представление алгоритма должно соответствовать требованиям какого-то реального ЯП. Это его право - тем более, что такая т. зр. согласуется и с концепцией визуализации знаний, исходя из которой везде, где только возможно, представление должно иметь графическую основу. А нецелесообразно это становится при представлении алгоритма для трансляции в программный код - поскольку транслятор объективно работает с текстом (исходным).
Итак, надо разделять псевдокод и прогязык как средства текстовой записи процесса. Для псевдокода аргументация Владимира Даниеловича правомерна - и мы вправе доработать любой существующий его стандарт - при этом он как был, так и останется символическим (человекочитаемым) представлением. Но оно, как уже говорилось, не столь и нужно.
Почему аргумент о несоизмеримости не м.б. принят для Оберона? Дело в том, что исходный текст должен подчиняться уже стандарту ЯП. При этом в стандарт ради "снятия несоизмеримости" не должны вноситься изменения, делающие ЯП ущербным. А применительно к структурному языку (и Оберону в частности) таким изменением как раз будет введение операторов Адрес ветки и Имя ветки - ведь это явный БП. Да и вообще для языка существует промышленный компилятор, создать который (и особенно - отработать так, чтобы он давал гарантоспособный код) - серьёзная задача; её нужно решать заново при каждом изменении, а оно целесообразно только если ТЯП чисто теоретически неоптимален - чего про Оберон не скажешь
Осмыслив это при предыдущем обсуждении, я задался вопросом: а что можно сделать для отражения силуэта средствами структурного программирования, принятыми в том же Обероне? В итоге была найдена возможность преобразования силуэта в цикл Дейкстры при определённых условиях. Она описана
в п.Доказательство этого примера. Если доказательство верно, то повод для разногласий, очевидно, исчезает; ведь есть возможность описать дракон-схему на Обероне (правда, напрямую - в редакции 07, где есть явный ЦД; однако в предыдущих редакциях можно представить ЦД другими средствами, что показано Виртом - см.
вложение в это сообщение).
При некоторых условиях, очевидно, возможно и обратное преобразование, но для практики это не столь существенно - нужно ведь получать исходный прогтекст с силуэтным ЦД для компилятора, а внутри визуальной среды пользоваться силуэтным представлением. При отладке прогтекста суть силуэтного ЦД затрагиваться не должна - поэтому перевод обратно в силуэт трудностей не представит.
Вот есть другой вопрос, по которому возникают расхождения между Оберон-семейством и техноязыком - о представлении взаимодействия процессов. Имею в виду, что в АО принят механизм условных критических интервалов (AWAIT), а в техноязыке, как и в специф-языке Promela для ModelChecking-верификации (конкретно - в среде Spin) - рандеву. Вот это нужно рассмотреть и "навести мосты" (если имеет место формальная нестыковка)...