User Tag List

Страница 2 из 18 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 213

Тема: Компилятор языка Паскаль - планы на будущее

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    а попробовать далее развить Turbo Pascal?
    интрено, в какую развить? в сторону Борман Дельфи?

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

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

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    У псевдокода тоже есть свои недостатки. Попробуй добавить в кодогенератор второй, третий процессор - сразу станет ясно что не так в архитектуре компилятора.
    псевдокод в данном случае - это не замена ассемблерных команд один-в-один, а каждая команда псевдокода может содержать несколько ассемблерных команд. Т.е. по сути каждая команда псевдокода описывает элементарное действие (запомнить, сложить, делить и т.д.), которое может состоять из нескольких ассемблерных команд.
    Вот например, нужно компильнуть: a:=4+(2+3).
    При просмотре исходника преобразуем в команды:
    Код:
    _LoadConst 4 -
    _Push - -
    _LoadConst 2 -
    _Push - -
    _LoadConst 3 -
    _PopAdd - -
    _PopAdd - -
    _StoreByte 0 _A
    Каждая команда содержит мнемонику, а также один числовой и один строковый параметры (прочерк '-' означает отсутствие значения).
    _LoadConst на коде Асма будет ld hl,const
    _Push - push hl. Приходится вталкивать в стек каждое значение, иначе заранее неизвестно, что мы с ним будем делать дальше.
    _PopAdd - это в реале две команды pop de и add hl,de.
    _StoreByte - это запись hl в один байт, т.е. ld a,l и ld(_A),a
    Реальный код:
    Код:
          ld    hl,4
          push  hl
          ld    hl,2
          push  hl
          ld    hl,3
          pop   de
          add   hl,de
          pop   de
          add   hl,de
          ld    a,l
          ld    (_A),a
    Теперь, чтобы его оптимизировать, не нужно проводить глубокий анализ всех push-pop и прочего, а только смотрим последовательные комбинации команд и сравниваем с заданными шаблонами оптимизатора. Например, имеется шаблон - последовательность _Push, _LoadConst, _PopAdd заменить на _LoadConst2Add.
    _LoadConst2Add состоит из двух команд: ld de,const и add hl,de
    Код:
    _LoadConst 4 -
    _Push - -
    _LoadConst 2 -
    _LoadConst2Add 3 -
    _PopAdd - -
    _StoreByte 0 _A
    Тогда будет:
    Код:
          ld    hl,4
          push  hl
          ld    hl,2
          ld    de,3
          add   hl,de
          pop   de
          add   hl,de
          ld    a,l
          ld    (_A),a
    Как-то так. Команды и шаблоны я сам придумываю в своем компиле
    Последний раз редактировалось Andrew771; 25.02.2015 в 12:55.

  4. #3

    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, всё верно. Но у нас всё-таки разные компиляторы и подход к их написанию. Потом будет интересно сравнить результат.

  5. #4

    Регистрация
    10.07.2013
    Адрес
    г. Москва
    Сообщений
    1,432
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    батл компиляторов?))))))))))))

  6. #5

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

    По умолчанию

    Цитата Сообщение от DJs3000 Посмотреть сообщение
    батл компиляторов?))))))))))))
    ага. Oleg N.Cher пока выигрывает, у него уже готов!

  7. #6

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

    По умолчанию

    Снимаем с соревнований. Во-первых потому что это всё-таки не Паскаль, во-вторых потому что там всю работу делают Ofront и SDCC. А развивается ли Z80-кодогенератор SDCC? Определённо да. Недавно обновил до нового снапшота, компактнее код генерит. На удивление стабильно собрал несколько сложных прог. Нужно не лениться репортить ошибки, их таки исправляют и продукт становится лучше.

    AlCo предлагает разработать Оберон-компилятор чтобы работал на самом Спеке, я пока отбрыкиваюсь, вроде странная задачка.

  8. #7

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    AlCo предлагает разработать Оберон-компилятор чтобы работал на самом Спеке, я пока отбрыкиваюсь, вроде странная задачка.
    Почему нет?
    В CP/M есть отличный компилятор ANSI C - Hitech C. Сделайте опять же нативный Z80-транслятор с Оберона на С.

    Если не нравится Hitech C (например из-за того что он для CP/M, хотя Алоне все равно для АТМ пишет же), есть несколько компиляторов С в исходниках. Да и на спеке наверное есть С-компилеры (правда, из 90-х помнится что спековские компилеры были слабоваты, возможно из-за отсутствия нормальной ОС)

    ---------- Post added at 12:32 ---------- Previous post was at 12:21 ----------

    Цитата Сообщение от Bolt Посмотреть сообщение
    Vadim, я когда начал писать компилятор тоже с теорией компиляции не был знаком. Была мысль прикрутить к FPC нужный кодогенератор, но FPC со стороны исходников мне не очень понравился. Я решил пойти по пути написания компилятора с нуля.

    Доработать Turbo Pascal под CP/M? А толку? Даже если разобраться в декомпилированных исходниках и умудриться доработать, то это так и останется компилятор, "прибитый гвоздями" к конкретному процессору и ОС.
    Компиляторы компиляторами, а смотрели вы например трансляторы (не интерпретаторы!)? Например, Innerfuse Pascal Script 3? Это скриптовый Object Pascal движок вида "Дельфи внутри Дельфи", на входе скрипт (т.е. программа на паскале), на выходе некий байт-код для executar-а (модуля-исполнителя байткода). Есть "дизассемблер байт-кода". Лет двенадцать назад я был просто фанатом IPS3 (версия 3 - последняя Free OpenSource, остальные платные), писал на нем программы в тысячи строк. Работало быстро и без косяков, все в исходниках, язык - практически полный Object Pascal.
    Последний раз редактировалось Error404; 17.03.2015 в 12:35.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  9. #8

    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Компиляторы компиляторами, а смотрели вы например трансляторы (не интерпретаторы!)? Например, Innerfuse Pascal Script 3? Это скриптовый Object Pascal движок вида "Дельфи внутри Дельфи"...
    Нет, не смотрел, но в курсе, что такое есть.
    По описанию это вообще не то, что мне нужно.

  10. #9

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

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    AlCo предлагает разработать Оберон-компилятор чтобы работал на самом Спеке, я пока отбрыкиваюсь, вроде странная задачка.
    Воистину странная - адекватоной IDE нет на Спеке.

  11. #10

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Воистину странная - адекватоной IDE нет на Спеке.
    Странная идея - пытаться юзать Спек как полноценную хост-платформу для разработки в качестве IDE. А то ведь, как я думаю, этому мешают объективные факторы - низкое разрешение экрана, слабенький проц и мало памяти. Даже если взять во внимание клоны, то и тогда вопрос использования именно Z80-based машины не имеет преимуществ, помимо нерациональной привязанности к системе команд этого проца aka тёплых домашних воспоминаний. Или это для истинных мазохистов ценителей?

    Кто-то называет выбранный мною подход трансляции Оберона в Си читерским, но я не верю в разработку кодогенератора приемлемого качества одной персоной на голом энтузиазме за разумный срок. Также не верю и в то, что две персоны согласуют взгляды на разработку до каких-то общих целей. Так что это раз. Два - желание хорошо отделить фронт-энд от бэк-энда. Вроде бы мне это удалось. Переписывать под Z80 - странная идея. Топтаться на месте много лет. Кому-то нравится? Удачи.

    Цитата Сообщение от Bolt Посмотреть сообщение
    Ссылку на хорошую подборку с уклоном в Оберон давал Oleg N. Cher.
    Вот ещё кое-что интересное на тему языков и трансляции, я весьма советую:

    Правильные книги по теории и обзору языков программирования

Страница 2 из 18 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Пожелания и планы по эмулятору Башкирия-2М
    от b2m в разделе Эмуляторы отечественных компьютеров
    Ответов: 848
    Последнее: 30.10.2025, 20:37
  2. Пожелания и планы по эмулятору MESS
    от shattered в разделе Эмуляторы отечественных компьютеров
    Ответов: 57
    Последнее: 02.08.2017, 22:14
  3. Планы на новые создаваемые игры
    от TomCaT в разделе Игры
    Ответов: 67
    Последнее: 21.03.2012, 14:44
  4. Назад в будущее?
    от Sonic в разделе Оси
    Ответов: 27
    Последнее: 19.07.2005, 16:56

Ваши права

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