Создание своего языка программирования | Компилятор LLVM IR, NASM
Ссылки:
Исходник видео: https://github.com/REDIZIT/Astra-Videos
Исходник компилятора на nasm: https://github.com/REDIZIT/AstraOS
Исходник компилятора на llvm: https://github.com/REDIZIT/AstraLLVM
Полезные ресурсы:
Абстрактные синтаксические деревья: https://craftinginterpreters.com/representing-code.html
NASM: https://metanit.com/assembler/nasm/
Спецификация x64 (инструкции): https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html - "Intel® 64 and IA-32 Architectures Software Developer's Manual Combined Volumes 2A, 2B, 2C, and 2D: Instruction Set Reference, A- Z"
Мануал LLVM: https://llvm.org/docs/LangRef.html
Высокий уровень абстракции на LLVM: https://mapping-high-level-constructs-to-llvm-ir.readthedocs.io/en/latest/a-quick-primer/index.html