В моём углубленном курсе компиляторов прошлой осенью мы провели некоторое время, изучая дерево исходников LLVM. Миллион строк кода на C++ выглядят пугающе, но я нахожу это интересным упражнением, и, по крайней мере, некоторые студенты с этим согласны, и я подумал, что я попытаюсь написать что-то подобное. Мы будем использовать LLVM 3.9, но предыдущие (и, возможно, будущие) релизы не сильно отличаются. Читать дальше →
В этой статье мы рассмотрим, как построить программу на Go, такую, как компилятор или статический анализатор, которая взаимодействует с фреймворком компиляции LLVM, используя язык ассемблера LLVM IR. TL;DR мы написали библиотеку для взаимодействия с LLVM IR на чистом Go, см. ссылки на код и на пример проекта. Читать дальше →
Уникальный, совершенно неформальный путеводитель по живому, непарадному, нескучному Петербургу. Открывает город с новой, необычной стороны. Здесь то, чего нет в путеводителях, о чем не рассказывают на экскурсиях. Это дружеская прогулка с человеком, который знает и любит свой город. И даже про Купчино может рассказать так, что там хочется навеки поселиться))) Неформальный Петербург. Путеводитель по культовым … Continue reading Неформальный Петербург. Путеводитель по культовым местам
Оглавление: Часть 1: Введение и лексический анализ Часть 2: Реализация парсера и AST Часть 3: Генерация кода LLVM IR Часть 4: Добавление JIT и поддержки оптимизатора Часть 5: Расширение языка: Поток управления Часть 6: Расширение языка: Операторы, определяемые пользователем Часть 7:…