User Tag List

Показано с 1 по 10 из 28

Тема: Как сократить код эмулятора Z80 на PC

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

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

    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    форт идеален в плане сокращения объема тем, что нет избыточной информации, в каких регистрах/ячейках хранятся промежуточные результаты. в записи арифметического или логического выражения лишь операнды и операторы, и то все в кучу

    плюс можно паковать чем-то вроде словарного метода (идентификаторов нет, код повторяется в точности) - ищем одинаковые куски и оформляем их в новые слова, если они конечно не начинаются внутри цикла и заканчиваются вне

    ну и дожимать - хранить не адрес слова, а его номер. причём юзать код переменной длины (1 байт - часто используемые слова, 2 - остальные). в идеале Хаффманом/арифметиком жать, если скорость не важна

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

  3. #2

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    да я это все сделал, замучиться только код на этом форте писать. Надо же по-другому, по-стековому думать. Все время помнить, сколько в стеке чего и в каком порядке лежит.

    А насчет С++ - не надо. У меня GUI интерфейс тянет, а не код эмулятора. Просто полазьте по меню, пооткрывайте окна. Их там - море и маленький вагон. На С++ это еще тяжелее будет весить. И переписывать все это - спасибки. Мне на паскале удобнее, не говоря уже о скорости компиляции. (Люди говоривали, что Delphi частично подготавливает код к компиляции прямо во время редактирования текста. А и правильно, чего процессор простаивает, пока мы тут клаву давим, пусть работает).

  4. #3

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    Люди говоривали, что Delphi частично подготавливает код к компиляции прямо во время редактирования текста. А и правильно, чего процессор простаивает, пока мы тут клаву давим, пусть работает
    Ничего он не подготавливает. Байки это.

  5. #4

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я много пишу на Delphi, и много пишу мини-компиляторов с разных языков. Даже с паскале-подобных делал в последнее время. Мой опыт говорит, что невозможно за доли секунды перекомпилировать огромный модуль после внесения в него некоторого количества изменений. А Delphi делает вид, что как-то успевает это сделать. И успевает за ту же секунду еще и экзешник пересобрать, и на отладку запустить. Другого способа, как пред-компиляция на этапе редактирования текста, просто не видно.

  6. #5

    Регистрация
    18.01.2005
    Адрес
    Калининград, Россия
    Сообщений
    110
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну это-то проверить легко. Запускаем filemon, ставим фильтр на delphi, топчем исходник и смотрим... Вряд ли он в память компилит (если компилит, я очень сомневаюсь).

  7. #6

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а почему и не в память, dcu (предкомпилированный модуль) не обновляется пока на нажать "компилировать", фокус в том, что происходит это мгновенно для исходника размером 2Мбайта текстов.

  8. #7

    Регистрация
    02.03.2005
    Адрес
    Екатеринбург
    Сообщений
    133
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    (ОФФ) Просто дельфийский компилятор - самый быстрый компилятор паскаля в мире. Кроме того сам паскаль проще чем C++ (нет препроцессора и шаблонов, порождающих мильоны строк левого текста), поэтому получается быстро. Предкомпиляцию ни разу не наблюдал (хотя она может и есть), но почему тогда борландовцы так же в C++Builder не сделали - там все не так, все по VC-шному медленно? Вывод (имхо): предкомпиляции нет, есть супербыстрый компилятор

  9. #8

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вообще-то если удалить dcu-файл на диске, то "сверх-быстрый компилятор от борланда" на полминутки, но задумается. 2 метра откомпилить на пол-секунды - нужен супер-компьютер какой-нибудь... Я скорее поверю в пред-компиляцию.

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

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

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

Ваши права

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