Did he ever return? No, he never returned, And his fate is still unlearned, He may ride forever ‘neath the streets of Boston, He’s the man who never returned. “Charlie on the M.T.A.”, 1949 1. Замыкания Одна из удобных возможностей современных языков программирования – вложенные функции: def bubble(arr, comp): def swap(i, j): temp = arr[i] arr[i] = arr[j] arr[j] = temp flag = True while flag: flag = False for i…
Во вторник, 5 июня, в петербургском офисе компании Oracle состоится встреча JUG.ru с Артуром Пилипенко, инженером компиляторной команды компании Azul Systems. Тема встречи — Falcon. Falcon — JIT-компилятор, построенный на базе инфраструктуры LLVM, уже год как является компилятором по умолчанию в виртуальной машине Zing. Новый компилятор во всю используется в продакшне и показывает существенный прирост производительности по сравнению со старым компилятором C2. Читать дальше →
Истоки Несколько лет назад я написал компилятор Паскаля. Мотивация была простой: в юности я узнал из своих первых книжек по программированию, что компилятор — вещь чрезвычайно сложная. Это утверждение засело занозой в мозгу и в конце концов потребовало проверки на опыте. ha.art.pl…
Очень рад объявить о завершении моего первого компилятора для языка программирования! Malcc — это инкрементальный AOT-компилятор Lisp, написанный на C. Вкратце расскажу о его многолетней разработке и что я узнал в процессе. Альтернативное название статьи: «Как написать компилятор за десять лет или меньше». (В конце есть TL;DR, если вас не волнует предыстория). Читать дальше →