компилятор.

Я написал верификатор eBPF для микроконтроллера. А потом ядро Linux объяснило мне, где я неправ

Ученики подарили мне ESP32. В коробке было всё, что обычно: датчик температуры, реле, горсть светодиодов, круглый дисплей и провода, которых, как выяснится позже, всегда не хватает ровно на один.Нормальный человек собирает из этого термостат за вечер. Я собрал термостат, посмотрел на него и подумал: а неприятно же будет каждый раз лезть с кабелем, если я захочу поменять порог с 22 на 23 градуса.Дальше мысль поехала не туда, и в итоге на плате оказался интерпретатор eBPF со своим верификатором байткода. Логика управления теперь заливается по Wi‑Fi обычной программой на C, скомпилированной clang -target bpf

продолжить чтение

В 100 раз эффективнее ARM: потоковый процессор Electron E1

Если энергопотребление ЦОДов будет и дальше расти, то для них придётся выкупать мощности АЭС, как это сделали Microsoft и Amazon

продолжить чтение

Месяц пишу язык программирования Nova с Claude Code. Где ломаются автономные агенты

TL;DR:

продолжить чтение

Компилируем Python так, чтобы он работал везде

Это история о том, как написать компилятор Python, генерирующий оптимизированные ядра и при этом позволяющий сохранить простоту кода.Предисловие

продолжить чтение

Как устроена память внутри микропроцессора и при чем тут компиляторы

Помните, как в школе, решая примеры «в столбик», мы бормотали себе под нос: «один пишем, два в уме»? У процессора при вычислениях возникает похожая ситуация — где-то нужно хранить промежуточные результаты. Они не используются прямо сейчас, но вскоре обязательно пригодятся. В современных микропроцессорах работает множество различных блоков, обрабатывающих числа, — их называют исполнительными устройствами. Чтобы все они могли временно «складывать» свои «два в уме», требуется достаточно большой объем быстрой вспомогательной памяти.Меня зовут Павел Кириченко, я автор

продолжить чтение

Обратная сторона Babel: как микроскопические языки помогают в изучении больших

В этой статье рассказывается, как крошечные, экспериментальные языки программирования, размером порой меньше 100 строк, могут неожиданным образом углубить понимание сложных промышленных языков. Будет показано, как микроязыки раскрывают суть концепций, скрытых в слоистых абстракциях Java, Rust или C++. Много примеров, кода и немного лирики.

продолжить чтение