User Tag List

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

Тема: Ретро-ЯП Millfork для Atari, Apple II, ZX Spectrum, MSX, CP/M, NES, Game Boy и MS-DOS

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

    По умолчанию Ретро-ЯП Millfork для Atari, Apple II, ZX Spectrum, MSX, CP/M, NES, Game Boy и MS-DOS

    Ещё один язык, похожий на Cowgol. Поддерживает генерацию в z80 и 6502. Компилер написан на Scala. В поставке есть игра Pong для NES (прилагаемая в каком-то NES-туториале и переписанная с асма).


    Кто целевая аудитория?

    Millfork был разработан как язык для разработчиков старых 8-битных платформ, в основном для разработчиков игр, которые мало используют расширенные возможности C, но у которых нет времени писать ассемблер.

    Что послужило вдохновением?

    Главными вдохновителями были Atalan, а также Quetzalcoatl, Batari BASIC и NESHLA. К сожалению, Atalan был заброшен, а компилятор остался в нерабочем состоянии. Цель Millfork — добиться успеха там, где Atalanпотерпел неудачу.

    Какие платформы поддерживаются?

    Большие программы в Millfork были разработаны для Commodore 64.

    Millfork также был протестирован (через эмуляторы) для запуска тривиальных программ на других 8-битных компьютерах Commodore, 8-битных компьютерах Atari, Apple II, BBC Micro, ZX Spectrum 48k, NEC PC-88, MSX, CP/M, NES, Game Boy, Atari Lynx, Atari 2600 и MS-DOS.

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

    Какие микропроцессоры поддерживаются?

    • MOS 6502 и его потомки: 6510, 65C02, Ricoh 2A03 и в меньшей степени CSG 65CE02, Hudson Soft HuC6280 и WDC 65816. 6509 не поддерживается и не будет, однако с некоторой осторожностью к нему можно относиться как к обычному 6502.

    • Intel 8080, Intel 8085, Zilog Z80, Sharp LR35902 (также известный как GBZ80)

    • Существует также частичная экспериментальная поддержка Intel 8086 посредством автоматического преобразования 8080 в 8086. Сгенерированный код очень большой и очень медленный.

    • Поддержка Motorola 6809 появится в будущем. Вы можете проверить ход работы, создав собственную платформу с использованием процессора 6809, но подавляющее большинство программ Millfork даже не скомпилируются.

    Почему Millfork, когда я могу использовать ассемблер?

    • Ассемблер не будет переносим. Если вы хотите использовать как 6502, так и Z80, вам придется поддерживать две отдельные кодовые базы.

    • Милфорк более продуктивен. Программисту не нужно беспокоиться о распределении регистров или размерах переменных.

    Почему Millfork, когда я могу использовать C?

    • Миллфорк обычно немного быстрее.

    • Нет среды выполнения, поэтому проще создавать небольшие программы.

    • Многие функции, обычно встречающиеся в продвинутых ассемблерах, но редко встречающиеся в языках высокого уровня, также доступны в Millfork, например макросы, включение бинарных файлов, явное распределение памяти, инициализация массивов выражениями.

    • Millfork более тщательно обращается с кодировкой текста.

    • Большое разнообразие целочисленных типов почти произвольных размеров.

    • Семантика разработана для 8-битных микропроцессоров, поэтому обычно требуется менее явное приведение типов.

    • Низкоуровневые вещи, такие как перенос после арифметических операций или отдельных байтов более крупных переменных.

    • Встроенная поддержка десятичной арифметики.

    • Простое взаимодействие со ассемблером.

    Звучит так, словно Миллфорк превосходит С во всех аспектах, верно?

    К сожалению нет:

    • Милфорк очень требователен. Он позволяет избежать компиляции сложных выражений, особенно тех, которые содержат более крупные переменные.

    • Поддержка целочисленной математики не очень полная.

    • Математическая поддержка чисел с плавающей запятой отсутствует.

    • Арифметика указателей очень ограничена.

    • Препроцессор Millfork менее мощный, чем препроцессор C.

    • Нет поддержки связывания с внешними библиотеками, написанными не на Millfork. Вам нужно либо переписать внешнюю сборку в синтаксис сборки Millfork, либо сгенерировать статический двоичный файл и связать его вручную с помощью директивы file.

    • Поскольку работа над компилятором находится в стадии разработки, некоторые из упомянутых проблем могут быть улучшены в будущем.


    Почему он называется Милфорк?

    Это означает язык среднего уровня для компьютеров K ommodore .

    (В Юте также есть шахтерский городок Милл-Форк, который, будучи подходящим компилятором для устаревших машин, в настоящее время заброшен.)

    «Коммодор» не пишется через букву К!

    Тсс.

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

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

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

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

Похожие темы

  1. Ответов: 11
    Последнее: 08.12.2023, 17:18
  2. Bad Apple для MSX/MSX2
    от Pyhesty в разделе MSX
    Ответов: 4
    Последнее: 31.05.2021, 21:45
  3. Перенос игр с Game Boy на ZX Spectrum
    от CityAceE в разделе Программирование
    Ответов: 104
    Последнее: 14.02.2019, 10:56
  4. Game Boy Advance
    от megabyte в разделе Nintendo
    Ответов: 8
    Последнее: 22.05.2006, 14:48
  5. Game Boy Advance в Питере.
    от Surfin_Bird в разделе Nintendo
    Ответов: 10
    Последнее: 21.08.2005, 09:50

Ваши права

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