А насчет общего взгляда ИМХО Вирт - это последний человек которому я бы стал доверять .... Далеко за примером ходить не надо - вот его код реализующий GCD (можно также взять и любой код его "эпигонов" как с циклом Дейкстры так и без, как рекурсивный, так и итеративный)
PROCEDURE GCD(x, y: INTEGER) : INTEGER;
BEGIN
WHILE x > y DO x := x - y
ELSIF x < y DO y := y - x
END;
ASSERT(x = y);
RETURN x
END GCD;
За такой код я просто НЕЩАДНО наказываю студентов - почему, просто ЗАДАЧА не решена ...это не GCD - это ГОВНО (достаточно вычислить GSD(0,a)=GSD(a,0)=a по определению). Кроме того из этого кода следует, что Вирт просто не знает определения GSD... А между тем это код "виртухаями" тиражируется в кучу учебников и пособий...
Вирт - не математик, а инженер - и нетрудно предположить, что не стал бы сам выдумывать алгоритм на математическую тему.
Я легко нашёл этот же алгоритм, с выводом, у Дейкстры в "Дисциплине программирования". Предусловия на алгоритм наложены 0 < x, 0 < y (см. стр. 30), т.е. Ваш случай просто вне области определения такого алгоритма. Не готов сейчас спорить, так это или нет, очевидно, что по крайним случаям есть разногласия даже у самих математиков. Даже о том, чётный или "никакой" нуль - и то споры, насколько помню, были между ленинградской и московской школой. Вполне возможно, что на Западе популярно определять GCD именно с таким ограничением, а не так, как учили Вас (тем паче, что и по времени сдвиг в 40 с лишним лет от первоисточника возмутившего Вас алгоритма).
Ваши г-ноизлияния не содержат никакого конструктива, а Виртов (условно Виртов, т.к. ББ) конструктив работает себе сутками, например, у меня, и чем дальше, тем меньше я стремлюсь вылезать из него даже в ОС. Не говоря про отмерший как рудимент Оффис (кроме случая статей на конференции). Вирт - инженер. Именно в этой роли он и славен. Есть у него и вторая роль - роль педагога.
На Оберонкоре недавно обсуждалась тема военной техники - Т34 и проч. Сравнивать и критиковать можно много (и каждая критика справедлива своим конкретным фактом), но эта техника была такой простой и технологичной, что ей смогли просто завалить все направления решения тогдашних задач.
Так и Оберон - ну технологично это, понимаете, и это перекрывает все слова с надутыми щеками, что "вот тут слабо, вот тут коряво, вот тут недоделано". Позволяет "валить" определённый спектр задач массово и сердито, не завися ни от кого. Спектр я называл не раз: системщина + "самостоятельная автоматизация" + настольные прикладные пакеты. Бесспорно, для решения тех же задач массового Веба и ИСов пока технологичнее "попса" - что я честно признаю, поскольку сам решал и так, и так, и пока временно вернулись для этих вещей к попсе..
Вот такие факты. Которые не перекрыть никаким злобствованием.