User Tag List

Страница 9 из 54 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 531

Тема: ZX Like Pascal

  1. #81

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    А вот язык никакой, это мне напоминает недо-Си Raydac'а, и ведь останется таковым. Оберон в ZXDev позволяет намного больше, намного.
    Это да, я не спорю. Я его делал прежде всего для написания игр, так что всё лишнее, на мой взгляд, отбросил.

    Сегодня обновил до версии 0.908 в первом посте.

    Исправлены баги:
    - устранено зацикливание FOR при конечном счетчике 255 (спасибо Oleg N. Cher за наводку);
    - иногда неверно записывались в память ячейки двумерных массивов, исправлено.

    А также новое:
    - теперь из командной строки или из файла BAT можно запускать со многими параметрами компиляции: вывод без/с атрибутами, вывод на обычный/виртуальный экран текста, спрайтов, карт, проверка/игнорирование краев спрайтов. См. мануал в архиве;
    - улучшена оптимизация для расчета в памяти ячеек массивов. Например, если вызываются подряд ячейки a[i,j] и a[i,j+k], то расчет адреса в памяти для ячейки a[i,j+k] берется смещением на k от адреса a[i,j], а не заново расчетом i*a1+j+k.

  2. #82

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Я его делал прежде всего для написания игр
    А будет развитие в сторону канонического Паскаля? Ибо вот это вот "для написания игр" отталкивает. А отталкивает тем, что намекает на кучу ограничений, который надо прочитать, выучить и не забывать при разработке.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  3. #83

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не могу обещать пока, т.к. занят написанием игры сейчас. Собстно, и хочу проверить, реально ли написать серьезную игру на подобно-Паскале.

  4. #84

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Andrew771, интересный проект.

    Почему вы решили компилировать в ассемблерный текст, который затем ещё раз надо компилировать? Не проще ли сразу генерировать исполняемый код?
    Ваш подход может помочь только в одном случае, если программист захочет доработать ваши процедуры или заменить их на свои.

    Компромиссный вариант: В зависимости от флага (галка/параметр командной строки либо директива компилятора) генерировать ассемблерный код как сейчас, или сразу исполняемый код.

    И ещё предложение ввести директиву компилятора {$ORG xxxxx}, указывающую по какому адресу компилировать исполняемый код.

    - - - Добавлено - - -

    И думаете ли об оптимизации? Например, в циклах вставлять тело процедур вместо вызовов процедур. Это полезно, если вызываемые процедуры небольшие, а сам цикл выполняется много раз, тогда программа будет гораздо быстрее исполняться.

  5. #85

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,712
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уважаемые,

    хотя я не пользуюсь данным компилятором, я за развитие в сторону канонического Borland Turbo Pascal, поэтому в своё время и советовал Андрею взять в исходниках компилятор Turbo Pascal v3.0 для Z80 и начать его развивать, но он пошёл по своему пути. Что же, это его решение и выбор. Но вообще молодец, здорово, что проект продвигается, респект.

  6. #86

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Почему вы решили компилировать в ассемблерный текст, который затем ещё раз надо компилировать? Не проще ли сразу генерировать исполняемый код?
    Ваш подход может помочь только в одном случае, если программист захочет доработать ваши процедуры или заменить их на свои.
    Можно было бы. Только тогда надо забыть о пользовательских процедурах на ассемблере, иначе мне придется еще писать и кросс-ассемблер. В принципе, насколько я знаю, можно сделать BAT-ник, в котором две команды:
    - кросс-компиляция Паскаля в Асм (это ZX Like Pascal умеет);
    - запуск кросс-ассемблера (например, sjasm) и подсовывание ему асмовского файла.
    Знающие люди, надеюсь, напишут тут, как это сделать.

    В отдаленном будущем планируется сделать родной (не кросс) Паскаль для Спектрума. Причем да, более приближенный к оригинальному Паскалю. Тем более, это позволит компилировать исходник компилятора самим компилятором, как учит Н.Вирт. Не на ассемблере же его писать.


    Цитата Сообщение от AzAtom Посмотреть сообщение
    И думаете ли об оптимизации? Например, в циклах вставлять тело процедур вместо вызовов процедур. Это полезно, если вызываемые процедуры небольшие, а сам цикл выполняется много раз, тогда программа будет гораздо быстрее исполняться.
    Оптимизации многие есть. А вот раскрытие циклов не стал делать, т.к. посчитал, что для вывода спрайтов достаточно встроенных моих процедур (там раскрытие циклов сделано уже в асмовском коде), а для остального вроде и не надо + отжирает память.


    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    я за развитие в сторону канонического Borland Turbo Pascal, поэтому в своё время и советовал Андрею взять в исходниках компилятор Turbo Pascal v3.0 для Z80 и начать его развивать, но он пошёл по своему пути
    По-видимому, придется. Т.к. изобретать велосипед - неблагодарное дело. Просто, это мой первый блин COM-ом, хотел сам написать, чтоб прочувствовать. На самом деле, это нелегко написать полноценный компилятор, подтверждение тому - постоянно всплывающие баги, так что лучше пользоваться наработками опытных. Я до сих пор не могу сделать поддержку хотя бы параметров процедур - головоломка. Кстати, пробовал брать полный исходник Оберона из книги Вирта "Построение компиляторов" и переделать на Паскаль, но пока тоже не осилил.

    - - - Добавлено - - -

    Цитата Сообщение от AzAtom Посмотреть сообщение
    И думаете ли об оптимизации?
    Моя статья по генерации кода и оптимизациям ZX Like Pascal есть тут или тут

  7. #87

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Andrew771, а что с ORG? Если его надо менять, то батником не обойтись. Хочется одну вещь попробовать сделать, но адрес мне другой нужен. Удобно, если в паскалевском исходнике уже указано куда компилировать, а не менять в ASM каждый раз.

    - - - Добавлено - - -

    И ещё пожелание менять расширение. Т.е., из "program.prg" делать "program.asm".

    - - - Добавлено - - -

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    придется еще писать и кросс-ассемблер
    Ну там гораздо легче - одна строка преобразуется в одну команду.

  8. #88

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,712
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    От Олега Комлева, соавтора 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, переписанный на Паскаль, с подробными комментариями.

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

  9. #89

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    И исходник TP 6.0 для DOS (в сети есть)
    Вы эти исходники смотрели?
    Как можно предлагать за базу брать исходники компилятора под дос на ассемблере для 8086 для переноса на z80 ?

  10. #90

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,712
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я не предлагаю переписывать весь код на Z80, только кодогенератор _для_ Z80. Главное - принцип. А подобрать аналоги команд можно. Для начала. Потом оптимизация. И понеслось.

Страница 9 из 54 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. PASCAL + MACRO11 (УКНЦ-ДВК).
    от hobot в разделе ДВК, УКНЦ
    Ответов: 341
    Последнее: 15.01.2022, 17:30
  2. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 4
    Последнее: 23.02.2020, 23:59
  3. в розыске дисковая версия Pascal.
    от goblinish в разделе Программирование
    Ответов: 18
    Последнее: 16.08.2011, 16:30
  4. Pascal
    от Andrew771 в разделе Программирование
    Ответов: 22
    Последнее: 24.05.2011, 21:20
  5. Скопировать/вставить из/в HiSoft Pascal в эмуляторе
    от kit в разделе Программирование
    Ответов: 1
    Последнее: 05.02.2010, 15:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •