От Олега Комлева, соавтора XDev:
Цитата Сообщение от Saferoll
Сообщение для Андрея Шарина (Andrew771)
В версии ZX Like Pascal v.0.908 такая же ошибка, как в реализации FOR для MSX-BASIC на Ямахе: есть проверка попадания на границу, но нет проверки на первоначальное нахождение нач.значения за границей. Поэтому любой цикл FOR выполняется хотя бы 1 раз, даже если начальное значение заведомо превышает конечное (например, "for a:=247 to 0 do write(a,' ');" напечатает 247).
- - - Добавлено - - -

Цитата Сообщение от Andrew771 Посмотреть сообщение
пробовал брать полный исходник Оберона из книги Вирта "Построение компиляторов" и переделать на Паскаль
М-м-м. А зачем - с Оберона на Паскаль? Т.е. зачем делать лишнюю работу? В чём замес, так сказать? (сборка мусора здорово упрощает написание, да и не только в этом преимущества. Ты давно ловил непонятный баг, когда прога просто вылетает? Я недавно. Но на Обероне такие вещи легче ловятся, чаще всего Оберон-компиляторы написаны настолько хорошо, что бага ловится и исправляется за секунды. Например, легко ловишь неверную метку в CASE. Или обращение по NIL-указателю. Или срабатывает ASSERT. Но это стиль, так надо научиться писать. Паскаль/Си не поощряют такой стиль, к сожалению, хотя он там конечно возможен.

Если таки собираешься брать за основу ТурбоПаскаль (есть и другие варианты, мне как-то Серж Атанцов выслал с пол-десятка компиляторов Паскаля, довольно интересных и уже на Дельфи, и переписывать не нужно), то возьми исходник TP 3.0 для Z80, он на асме. И исходник TP 6.0 для DOS (в сети есть), он на Паскале+TurboVision (IDE)+асм (компилятор). И по мотивам этих двух проектов и двигайся. Где-то в сети я видел компилер TP, переписанный на Паскаль, с подробными комментариями.

В нативном компиляторе прям на самом Спеке смысла вообще не вижу. Ты хочешь сделать хороший компилятор или поиграться? ;-)