
Сообщение от
Alex Rider
Действительно. Да и на Си не зачем. Потому что язык должен быть эфективным. Я вот в первом своем посте в этой ветке запамятовал сказать, что не только язык, но и среда разработки должна быть эффективной. Для Спека пишут на всяких Бэйсиках и ассемблерах по причине того, что это отлаживать хоть как-то можно. Вроде как, Форт еще позволяет отлаживаться хоть как-то. А на Си и Паскале не пишут, а балуются. Потому что вот ну никак вот не получается отладить по шагам написанный код, посмотреть значения переменных на рантайме, глянуть, что нарисовалось на экране, что несерьезно в больших проектах. А связку Оберон - Си - ассемблер вообще не понятно как отлаживать на целевой платформе.
Вопрос действительно очень интересный и не имеющий одного простого решения. С одной, впрочем, стороны поймём, что масштаб Оберон-проектов для ZX пока что ограничен 48кб памяти, поэтому говорить о реально больших проектах не приходится. С другой – взгляды Оберон-сообщества на отладку Вам вряд ли понравится.
Я использую для отладки ASSERT'ы, и debug-вставки с отладочной распечаткой.
Код:
MODULE Sets; (* portable *)
CONST
Debug* = TRUE;
END Sets.
Код:
MODULE Grx; (* portable *)
IMPORT Sets, Debug;
...
PROCEDURE PutSprite* (x, y: SpriteCoords; spr: Sprite);
BEGIN
IF Sets.Debug THEN (* Это прямой аналог ifdef'а, однако если Debug = FALSE, то никакого лишнего кода в прогу не вставится *)
CASE x OF 0..MaxX: CASE y OF 0..MaxY: ELSE Debug.Stop("Bad sprite coords!") END END;
END;
...
END PutSprite;
END Grx.
Для профилирования использую эмулятор Fuse. В качестве пошагового отладчика – эмулятор Владимира Кладова EmuZWin. Так и баги в кодогенераторе SDCC искал, так и свои проги дебажил. С третьей стороны, если создать Оберон-обвязку в стиле ZX, то появляется интересная возможность отлаживать кроссплатформенные Оберон-модули, подходящие и для ZX, внутри хост-Оберон-среды типа A2 или BlackBox. Это возможно. Надо разрабатывать инструментарий.
Я также не против иметь готовый пошаговый отладчик Оберон-программ чисто для Z80. Осталось его написать.
А ещё Вы удивитесь и не поверите, но на самом деле потребность в отладке в Оберон-программах не такая большая, значительно меньше, чем на Си. Помогает и охрана типов, и автоматическое управление памятью. Но это не про связку Ofront/SDCC.

Сообщение от
Alex Rider
А это вообще народная программерская забава такая - намешать в одном коде исходников несовместимых от разных комплектов библиотек, и объявить язык убогим за то, что он это позволил.
Угу, а кто их объявил несовместимыми друг с другом? Это же "модули"! 

Сообщение от
Raydac
Именно!
Вот. Игорю тоже пришлось. 
Raider, Raydac, можете поспособствовать регистрации на данном форуме ещё одного оберонщика и спектрумиста? Ибо он пробовал зарегистрироваться, но регистрация отключена администрацией. Типа намёк: не любят здесь неофитов. А я припёрся весь такой красивый.