UA3MQJ (05.11.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Для 6502 сделали умельцы работоспособный, оптимизирующий, backend: https://llvm-mos.org/
C, C++, Rust можно использовать, с некоторыми понятными ограничениями.
Видео:
Oleg N. Cher (27.07.2022)
Разворот концевой рекурсии в цикл -- стандарт для компиляторов уже много десятилетий. Собственно, многие современные алгоритмы обработки списков полагаются на это.
Про это Clang ничего знать не должен, у него другие задачи. А так, у компиляторов на основе Clang всё это, разумеется, есть. Как же иначе?
Вот тут тема про этот backend: http://forum.6502.org/viewtopic.php?f=2&t=6450
Oleg N. Cher (21.01.2024)
Тема заглохла, но, возможно, кому-то будет интересен прямой (не через Си) способ разработки на Обероне под 6502 и Z80 (не проверен).
У Майкла Гроссниклауса (Michael Grossniklaus) есть компилятор Oberon, который использует LLVM в качестве бэкэнда и, по крайней мере, теоретически, должен быть способен компилироваться в любой системе, имеющей бэкэнд LLVM, но в настоящее время поддерживает разработку под Windowsx86/AMD64, MacOS и Linux, а поддержка Windows ARM находится в стадии разработки.
В этом проекте реализуется компилятор языка программирования Oberon в качестве интерфейса к инфраструктуре компилятора LLVM. Он написан на C++ и возник как проект, сопровождающий курс магистратуры «Конструирование компилятора», преподаваемый в Университете Констанца. Как следствие, этот компилятор изначально предназначался только для подмножества языка Оберон-0, как описано в книге Никлауса Вирта «Создание компилятора» (глава 6, стр. 30-32). С тех пор поддерживаемое подмножество Oberon постоянно расширялось с целью в конечном итоге охватить полную спецификацию языка, как описано в последней версии Oberon Language Report. Помимо этих «официальных» расширений, к поддерживаемому диалекту языка программирования Оберон были добавлены и другие функции. Эти функции были либо вдохновлены удобством, например, взаимодействием со стандартными библиотеками, либо ностальгией автора компилятора по изучению Turbo Pascal 6.0 как его первого языка программирования в старшей школе. Описание поддерживаемого в настоящее время диалекта Оберона с точки зрения синтаксиса и семантики (неофициальных функций) можно найти в разделе Wiki этого репозитория проекта.
Для macOS и Linux были протестированы версии x64 и Arm64. Полная поддержка Windows (arm64) в настоящее время находится в стадии разработки. Подробные инструкции по сборке компилятора Оберона и его зависимостей можно найти в разделе Wiki репозитория проекта.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)