В этой статье мы рассмотрим, как построить программу на Go, такую, как компилятор или статический анализатор, которая взаимодействует с фреймворком компиляции LLVM, используя язык ассемблера LLVM IR. TL;DR мы написали библиотеку для взаимодействия с LLVM IR на чистом Go, см. ссылки на код и на пример проекта. Читать дальше →
Прошло более двух лет с момента последней проверки кода проекта LLVM с помощью нашего анализатора PVS-Studio. Давайте убедимся, что анализатор PVS-Studio по-прежнему является лидирующим инструментом по выявлению ошибок и потенциальных уязвимостей. Для этого проверим и найдём новые ошибки в релизе LLVM 8.0.0. Читать дальше →
Оглавление: Часть 1: Введение и лексический анализ Часть 2: Реализация парсера и AST Часть 3: Генерация кода LLVM IR Часть 4: Добавление JIT и поддержки оптимизатора Часть 5: Расширение языка: Поток управления Часть 6: Расширение языка: Операторы, определяемые пользователем Часть 7:…
Это руководство посвящено написанию простейшего компилятора на LLVM. Никакой предварительной подготовки не требуется. Входным языком нашего компилятора будет BF. Это классический «игрушечный» язык для компиляторов, и даже есть компилятор BF в примерах к LLVM! В этом посте я приведу процесс написания компилятора с пояснениями. Читать дальше →