User Tag List

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 41

Тема: Sphinx C-- для Z80

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

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

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    810
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    77
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если есть большое желание сподвигнуть на написание компилятора, может лучше рассказать про bison/yacc/flex или что там нынче модно? Да вообще направить пытливый детский ум не в ручное написание лексического парсера и изучение исходников времен зеленых терминалов, а познакомить с правильным подходом. Может и не напишем, но книжки правильные и интересные почитаем. А то претенденты на лучший язык для спека каждые пол года новые, а реально используются максимум скрипты из агд и мк2, ну или С от безысходности.

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    может лучше рассказать про bison/yacc/flex или что там нынче модно?
    Дык. Сподвигайтесь.


    Но я продолжаю оставаться при мнении, что энтузиасту-самоделкину подвластен только простой компилятор ЯВУ со средним качеством генерации кода. То есть он даже не приблизится к SDCC, который здесь много ругали и много хвалили. Кстати, есть ещё ZSDCC из набора z88dk - SDCC с расширенным набором правил для peephole-оптимизатора. По утверждениям разработчиков - даёт код намного лучше.

    Другое дело, если язык очень низкоуровневый - типа Metal, COLOSS, PL/M или C--
    И тогда можно описывать все оптимизации руками и писать на нём демки и игры качества, сопоставимого с написанными на ассемблере.

  4. #3

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

    По умолчанию

    я пробовал читать "Книгу Дракона" (известную в писи-кругах), но для Спека оттуда мало что применимо. Там слишком современные подходы

  5. #4

    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    352
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    63
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, в 2018 году естественно использовать всякие там bison/yacc/flex/antlr/javacc и прочие LLVM, но их недостаток - высокий порог вхождения. Тогда как написать свой простой парсер реально за пару-тройку вечеров. Если изначально не ставить цель написания с нуля собственного ЯВУ, а сделать некоторую надстройку над ассемблером, которая улучшит структуру и читаемость кода, и постепенно её развивать, то можно получить ощутимый практический результат сравнительно небольшими усилиями.

  6. #5

    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    236
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    24
    Поблагодарили
    20 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вариация C--, кстати, на практике используется в GHC (компилятор Haskell) в качестве промежуточного кода: https://ghc.haskell.org/trac/ghc/wik...entary/Rts/Cmm

  7. #6

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,450
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    кстати, кто копался в коде? выходит, что в x86 сравнение переменных выльется в не пойми что, если сравнивать с кодом z80.

  8. #7

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

    По умолчанию

    В коде не копался, но по-моему наоборот, в Z80 сравнение переменных выливается в не пойми что.
    x86 более приспособлен под ЯВУ (локальные переменные, массивы, указатели...).

  9. #8

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,450
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    как раз да. я увидел в Hitech C замысловатый код сравнения. в х86 выглядело бы как:

    cmp ax,-1
    jl..
    jg..

  10. #9

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

    По умолчанию

    Цитата Сообщение от Шынни Посмотреть сообщение
    как раз да. я увидел в Hitech C замысловатый код сравнения. в х86 выглядело бы как:

    cmp ax,-1
    jl..
    jg..
    это еще не самое замысловатое, на x86 можно сделать и такое:
    Код:
    switch:
      shl al,6  ;проверяем 3 младших разряда
      jc case47
      jz case0   ;x00
      jns case1  ;x0x
      jnp case2  ;x10
    case3:   ;x11
    ...
    case47:  ;1xx
      jz case4
      jns case5
      jnp case6
    case7:
    ...

  11. #10

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,450
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от blackmirror Посмотреть сообщение
    это еще не самое замысловатое, на x86 можно сделать и такое:
    ВОН ИЗ ПРОФЕССИИ!!

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. LLVM Backend для Z80
    от EARL в разделе Программирование
    Ответов: 124
    Последнее: 21.01.2024, 07:59
  2. Ищу Си для Z80
    от AlexBel в разделе Программирование
    Ответов: 376
    Последнее: 12.08.2018, 19:37
  3. Z80 симулятор для PROTEUS'а ...
    от Robus в разделе Эмуляторы
    Ответов: 9
    Последнее: 09.04.2015, 06:44
  4. Компилятор С и ASM для Z80 на C#
    от ZXMAK в разделе Софт
    Ответов: 28
    Последнее: 18.11.2014, 16:31
  5. Машина Тьюринга для Z80
    от ZXMAK в разделе Эмуляторы
    Ответов: 4
    Последнее: 15.08.2011, 03:26

Ваши права

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