Версия 0.21 | Смотрите также: пузырьковый побег 2k ∘ situ-sol
Примечание: достигнув большинства своих целей, шестидесятипичный проект может не подвергаться гораздо большему развитию в будущем. См. Будущие указания для шестидесятипичков для получения дополнительной информации.
Sixtypical привносит расширенный статический анализ в 6502.
Sixtypical-это язык программирования низкого уровня, поддерживающий некоторые передовые методы статического анализа. Его эталонный компилятор может генерировать эффективный код для нескольких целевых платформ на основе 6502, одновременно выявляя многие общие ошибки во время компиляции, сокращая время, проведенное на отладку.
Убедитесь, что у вас установлен Python (2,7 или 3,5+). Затем клонируйте этот репозиторий и поместите его каталог bin на свой исполняемый путь поиска. Тогда вы можете запустить:
sixtypical
Если у вас установлен набор вице -эмуляторов, вы можете запустить
sixtypical --run-on=x64 eg/c64/hearts.60p
и он составят сердца. 60p исходный код и автоматически запустит его в эмуляторе x64 , и вы должны увидеть:

Вы можете попробовать sixtypical --run-on на других источниках в дереве каталогов eg , который содержит более обширные примеры, включая целую игру (-подобную программу); См. Eg/readme.md для списка.
Шестьдесятпичные цели - заполнить эту нишу:
Sixtypical дает программисту режим кодирования наравне с языком сборки с точки зрения размера и практической, но также может поймать много нелепых глупых ошибок во время компиляции.
Многие из примитивных инструкций Sixtypical напоминают инструкции MOS Technology 6502 - фактически предназначено для составления 6502 машинного кода. Тем не менее, он также предоставляет некоторые операции «более высокого уровня» на основе общих 8-битных программирования машинного языка, включая идиомы, включая
В то время как программист найдет эти конструкции удобными, их включение в язык заключается в том, чтобы в первую очередь облегчить анализ программы.
Шестидесятипичный язык определяет систему эффекта, а эталонный компилятор абстрактно интерпретирует программу ввода в способе печати потока, чтобы подтвердить, что она не нарушает ее. Это может обнаружить общие ошибки, такие как
В отличие от большинства традиционных языков, в шестидесятипичке программист должен очень явно управлять памятью, выбирая регистры и местоположения памяти для хранения каждой части данных. Поэтому, в отличие от компилятора C, такого как CC65, шестидесятипичный компилятор не нуждается в генерировании кода для обработки вызова конвенций или регистрации. Это приводит к небольшим (и, следовательно, более быстрым) программам.
Флагманская демонстрация, мини -игра для Commodore 64, компилируется в 930 -байт .PRG -файл.
Справочная реализация может анализировать и собирать шестьдесят-телесные программы на 6502 форматов машинного кода, которые могут работать на нескольких 8-битных архитектурах на основе 6502:
Например, программы для каждого из них, см. EG/readme.md.
Sixtypical определяется спецификационным документом, набором тестовых случаев и справочной реализацией, написанной на Python.
Существует более 400 тестовых случаев, написанных в формате Falderal для читаемости. Чтобы запустить тесты для компиляции, DCC6502 должен быть установлен.
sixtypical