Важная информация

User Tag List

Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 41

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

  1. #1
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,599
    Спасибо Благодарностей отдано 
    2,172
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    99 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Sphinx C-- для Z80

    Гм, оказывается, всплыли исходники Sphinx C-- от Peter Cellik/Michael Shecker. В своё время я очень интересовался этим языком и жалел, что нет версии, генерирующей машкод для Z80. Ведь это будет (для Z80) получше, чем самопальные Паскали, уж простите, если кого-то задел)



    Цитата из моей статьи в Радиомир. Ваш компьютер «Sphinx C-- — язык не для всех»:

    Цитата Сообщение от Oleg N. Cher
    У некоторых “сетевых” людей промелькнула мысль “заточить” C-- для генерации кода Z80, используя парсинг C--: “Насколько это трудоемко? Помню, увидел его в первый раз, это была версия, не умевшая даже PM, но уже с большим набором библиотек, плюс приятный и ясный синтаксис. Первая мысль — так бы на Спектрум! Я не думаю, что перекраивать компилятор придется очень сильно — та же модель tiny очень подходит для Z80, и мнемоники в большей степени похожи. Сорцы брать старых версий, где защищенного режима и win32 нет. Необходимость в таком языке возникла давно — не все ж на ассемблере программировать!”

    Но вот что М.Шекер думает по этому поводу: “Теоретически ничего невозможного нет, надо только желание и время. Умножение, деление и другие возможности языка можно эмулировать вызовом соответствующих inline-процедур. Но необходимости я в этом не вижу. Архитектура и возможности Z80 сильно отстали от интеловской линейки. Лучше заняться переписыванием софта Z80 на С-- (там встречаются неплохие идеи и их реализации, но и они могут скоро потерять свою актуальность)”.

    Что ж, очень жаль. :-( Но, может, и среди спектрумистов найдется свой Шекер? :-)
    Ссылка, откуда я об этом вообще узнал:


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

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

    По умолчанию

    А чем самопальный паскаль хуже самопального С--?

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

    По умолчанию

    Весь исходник пропитан x86, портирование на другую платформу, сопоставимо с создание с нуля

  5. #4
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,599
    Спасибо Благодарностей отдано 
    2,172
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    99 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    А чем самопальный паскаль хуже самопального С--?
    Если делать Паскаль, удобный для эффективной разработки именно для Z80, то нужно его сильно доработать, нарушив имеющиеся каноны и совместимость. Иначе он не будет столь эффективен. Параметры в стеке, локальные переменные в стеке (для реентерабельности и рекурсии) и т.д.

    C-- же имеет модель передачи регистровых параметров, явное обращение к регистрам и очень много подобных вещей, и в целом ложится на архитектуру Z80/8080 намного лучше, чем обычный Си. На нём очень легко можно руками описывать разные хитрые оптимизации, приближая тем самым разработку на C-- к разработке на чистом асме.

    А исходник мне и самому не понравился, это даже в принципе и не C++. Но кто из нас кодит иначе? ;-)

    P.S. Любителям 8080. Если подзаточить для 8080, можно на этом Сфинксе писать для РК-86 и Апогея)

  6. #5
    Member Аватар для Vasil
    Регистрация
    02.10.2006
    Адрес
    Тверская обл.
    Сообщений
    149
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Гм, оказывается, всплыли исходники Sphinx C-- от Peter Cellik/Michael Shecker.
    Это такая шутка, да? Я еще в 2001-м компилил их, авторские (Peter Cellik).

    У некоторых “сетевых” людей промелькнула мысль “заточить” C-- для генерации кода Z80, используя парсинг C--: “Насколько это трудоемко? ....
    Сразу видно, что человек, написавший это, никогда не занимался подобными вещами. По сравнению с интеловскими камнями, возможности z80 крайне ограничены, в эти ограничения портировщик сразу и упрётся, как в стену. Поэтому си-подобный код в таком С-- будет не сильно отличаться от кода, создаваемого в чистых си-компиляторах 8-ми биток. В С-- для 8-ми биток основной упор будет на асмовый код, потому как оптимизатор в этом случает будет сам пррограммист. Вот и вся арифметика.

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

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

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

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    C-- же имеет модель передачи регистровых параметров, явное обращение к регистрам и очень много подобных вещей, и в целом ложится на архитектуру Z80/8080 намного лучше, чем обычный Си.
    Да,.... святая наивность. Хочешь, предскажу твоё (у тебя в голове) будущее? Как только дело дойдёт до практических занятий по прикрутки "твоих нынешних восторгов" к z80, то твоя мечтательность рассеется как утренний туман.

    P.S. Любителям 8080. Если подзаточить для 8080, можно на этом Сфинксе писать для РК-86 и Апогея)
    Я бы пока подождал ставить телегу впереди лошади, мечтатели Вы наши

  7. #6
    Activist Аватар для AzAtom
    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    292
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vasil Посмотреть сообщение
    Оптимизацией кода, которого в пасе нет
    Всегда думал, что оптимизация не в языке, а в компиляторе. Паскалю какая разница, что там накомпилирует компилятор?

  8. #7
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Если делать Паскаль, удобный для эффективной разработки именно для Z80, то нужно его сильно доработать, нарушив имеющиеся каноны и совместимость. Иначе он не будет столь эффективен. Параметры в стеке, локальные переменные в стеке (для реентерабельности и рекурсии) и т.д.

    C-- же имеет модель передачи регистровых параметров, явное обращение к регистрам и очень много подобных вещей, и в целом ложится на архитектуру Z80/8080 намного лучше, чем обычный Си. На нём очень легко можно руками описывать разные хитрые оптимизации, приближая тем самым разработку на C-- к разработке на чистом асме.
    Регистровые оптимизации зависят от количества и возможностей регистров в проце, а не от ЯВУ. На Спеке с количеством регистров беда - полноценные только A и пара HL, с которыми можно что угодно делать, остальные ограниченные. Всё только вокруг них вертится.

  9. #8
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,125
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    11 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а чем С-- лучше Hitech C ?

  10. #9
    Activist Аватар для Trol73
    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    350
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    41
    Поблагодарили
    25 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тоже давно хотел иметь компилятор C-- подобного языка для Z80.
    После долгих колебаний начал делать свой велосипед для AVR. Цель была не в том, чтобы поддержать весь синтаксис С--, а только те конструкции, которые хорошо ложатся на систему команд. Т.е., хотелось, чтобы при взгляде на код было сразу более-менее понятно, в какие инструкции он будет скомпилирован. И, если какую-то конструкцию не получается скомпилировать в простой компактный код, то она не поддерживается. Сейчас есть поддержка функций с аргументами, условий и циклов. Ну и простая арифметика с регистрами.
    Работает это штука как препроцессор кода, создавая на выходе ассемблерный файл.
    Проект написана на яве, исходники на гитхабе: https://github.com/trol73/avr-asm-ext
    Некоторое незаконченное (и уже устаревшее) описание попытался изобразить: http://trolsoft.ru/soft/avr-asm-ext (там в конце ссылки на пару примеров проектов на языке).
    Проект сыроват, но уже вполне рабочий. Писать код стало ощутимо проще (чем на ассемблере), читать - тем более. Скорость выполнения и размер, при этом, ничем не уступают чистому ассемблеру. Качество кода (если он не совсем тривиален) местами получается ощутимо более высоким, чем у GCC, не смотря на все его оптимизации.
    Надеюсь довести проект до ума и потом делать форк для Z80.

  11. #10
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,599
    Спасибо Благодарностей отдано 
    2,172
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    99 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vasil Посмотреть сообщение
    Это такая шутка, да? Я еще в 2001-м компилил их, авторские (Peter Cellik).
    Речь идёт про исходники, доработанные Шекером.

    Цитата Сообщение от Vasil Посмотреть сообщение
    Как только дело дойдёт до практических занятий по прикрутки "твоих нынешних восторгов" к z80, то твоя мечтательность рассеется как утренний туман.
    Я не собираюсь этим заниматься. Инфу пощу чтобы, может быть, кого-то вдохновить. То есть выполнить роль Инфоркома в далёких 80-х.

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Всегда думал, что оптимизация не в языке, а в компиляторе. Паскалю какая разница, что там накомпилирует компилятор?
    Видишь ли, есть языки, в которых оптимизацию можно тонко описывать руками. Дубовый компилятор, изощрённый программист, хитрый и малопонятный код. К таким языкам я бы отнёс PL/M, ну и конечно C--

    В противовес этому — умный и изощрённый компилятор, тупой программист, тупой "в лоб" код.

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

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Регистровые оптимизации зависят от количества и возможностей регистров в проце, а не от ЯВУ.
    Именно от ЯВУ. На одном языке (Sphinx C--) ты можешь описать регистровые оптимизации средствами языка, на другом (Pascal без специальных низкоуровневых расширений) — не можешь. Всё.

    Цитата Сообщение от Шынни Посмотреть сообщение
    а чем С-- лучше Hitech C ?
    C-- совсем другой язык, несовместимый с Си и более низкоуровневый. Типа PL/M, но на базе Си. Я бы сказал, что на нём можно легко писать демки заместо асма. На Hitech C вряд ли кто-то захочет писать демки (или игры).

    Trol73, респект! Оценили — плотность кода выше, чем на асме? Удобнее, больше кода помещается, легче читать и воспринимать. Именно для этого нужны такие над-ассемблеры.

Страница 1 из 5 12345 ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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