[Перевод] LLVM IR и Go

В этой статье мы рассмотрим, как построить программу на Go, такую, как компилятор или статический анализатор, которая взаимодействует с фреймворком компиляции LLVM, используя язык ассемблера LLVM IR.

TL;DR мы написали библиотеку для взаимодействия с…

Новый язык программирования своими руками и головой

Привет, Хабр! Сразу к делу. В данный момент я читаю «Книгу дракона» и занимаюсь разработкой компилятора под свой язык программирования, названный Лоло (в честь пингвинёнка из советско-японского мультфильма). Планирую закончить в течение года, если ничт…

Самые частые грабли при использовании printf в программах под микроконтроллеры

Время от времени в моих проектах приходится применять printf в связке с последовательным портом (UART или абстракция над USB, имитирующая последовательный порт). И, как обычно, времени между его применениями проходит много и я успеваю напрочь забыть вс…

Делаем процесс разработки тяжеловесного программного обеспечения под микроконтроллеры более удобным (нет)

Сейчас уже никого не удивить микроконтроллерами с энергонезависимой (чаще всего Flash) памятью объемом 512 килобайт и более. Их стоимость постепенно снижается, а доступность напротив, растет. Наличие такого объема энергонезависимой памяти дает возможно…

[Перевод] Пишем кастомный трансформер AST на TypeScript

Команда TestMace снова с вами. На этот раз мы публикуем перевод статьи о преобразовании кода TypeScript, используя возможности компилятора. Приятного чтения!
Введение
Это мой первый пост, и в нём мне бы хотелось показать решение одной задачи с помощь…

[Перевод] Сравнение одинакового проекта в Rust, Haskell, C++, Python, Scala и OCaml

В последнем семестре университета я выбрал курс компиляторов CS444. Там каждая группа из 1-3 человек должна была написать компилятор из существенного подмножества Java в x86. Язык на выбор группы. Это была редкая возможность сравнить реализации больших…

[Перевод] Компиляция C в WebAssembly без Emscripten

Компилятор — часть Emscripten. А что, если удалить все свистелки и оставить только его?

Emscripten необходим для компиляции C/C++ в WebAssembly. Но это гораздо больше, чем просто компилятор. Цель Emscripten в том, чтобы полностью заменить ваш компил…