Axcel писал(а):
to Прохоренко
По моему у Вас получилось хуже, громзче и не понятнее,
Вы, наверное, сравниваете с лаконичными эквивалентными конструкциями, которые я сделал с помощью "запрещенных" в хорошем стиле программирования циклов LOOP и операторов BREAK. А Вы сравните с исходными конструкциями с циклами WHILE. Вот где можно голову сломать, особенно в схеме "линейный поиск" (
http://www.oberoncore.ru/wiki/%D0%BF%D0 ... 0%BE%D0%B2):
Код:
взять_первую_ситуацию;
WHILE ~конец_ситуаций & ~( ... условие поиска ..) DO
... возможно, но не очень часто встречается - действие над текущей ситуацией ...
взять_следующую_ситуацию
END;
IF ~конец_ситуаций THEN
... нашли, делаем что надо, с той ситуацией, на которой остановился цикл...
ELSE
... не нашли, делаем что-то, если нужно
END
Сделать что-то подобное безошибочно можно только, если иметь шаблон перед глазами.
Axcel писал(а):
хотя возможно здесь работают стереотипы.
Думаю, что как раз они и работают. Длинная форма оператора IF тоже, наверное, поначалу вызвала шок:
Код:
IF
<первое условие>
THEN
<первая последовательность операторов>
ELSIF
<второе условие>
THEN
<вторая последовательность операторов>
{ELSIF <очередное условие> THEN <очередная последовательность операторов>}
ELSE
<последняя последовательность операторов>
END;
А теперь, ничего, все пользуются.
Кстати, мой замысел заключается в том, чтобы вся шаблонная конструкция вставлялась в код одним щелчком мыши, а потом вместо заглушек с подсказками типа "<введите условие поиска>" программист бы вставлял требуемые условия и действия. При такой технологии громоздкость не имеет никакого значения, так как не приходится вбивать с клавиатуры каждый оператор. А главное, что улучшается читабельность кода.
Axcel писал(а):
Вообще говоря, многое (если не все), что вы предлагаете, так или иначе реализовано в Алголе-68, но должен признать циклы у Вирта более "робастые"
А можно конкретный пример из Алгола-68?
Что такое "робастые"?
Насколько мне известно, Алгол-68 - вовсе не детище Вирта, а конкурирующий с ним продукт.