Добро пожаловать в Главу 5 учебника «Создание языка программирования с LLVM». Предыдущие главы (
1-я,
2-я,
3-я и
4-я) описывали реализацию простого языка программирования Kaleidoscope и включение в него поддержки генерации LLVM IR, а также последующей оптимизации и JIT-компиляции. К сожалению, в текущем виде Kaleidoscope почти бесполезен: он не имеет никакого потока управления, за исключением вызовов и возвратов. Это означает, что в коде не может быть условных переходов, что значительно ограничивает язык программирования. В этой главе мы расширим Kaleidoscope, добавив в него выражение
if/then/else и простой цикл
"for".
Читать дальше →