Двоичный интерфейс приложений, чаще именуемый просто ABI — это концепция, которая кажется знакомой и незнакомой одновременно. В каком смысле знакомой? Об ABI часто говорят в контексте устранения неисправностей, упоминают в статьях. Иногда даже приходится решать проблемы с совместимостью, которые провоцирует этот интерфейс. А в каком смысле незнакомый? Дело в том, что, если кто-то попросит вас описать, что такое ABI — то вы обнаружите, что понимаете, о чём речь, но чётко сформулировать ответ на этот вопрос сложновато. В конце концов, можно ограничиться формулировкой, Читать полностью »
Рубрика «Компиляторы»
Подробно об ABI для работы с C++
2026-06-22 в 19:25, admin, рубрики: abi, c++, библиотеки, Компиляторы, Программирование, совместимостьАлиасинг памяти в C++: прошлое, настоящее, будущее
2026-06-10 в 12:42, admin, рубрики: C, c++, undefined behaviour, алиасинг, Компиляторы, производительностьПривет! Меня зовут Владислав, я разрабатываю компиляторы в YADRO. В этой статье я расскажу вам про алиасинг памяти в C++: как он развивался, к чему пришел сейчас и что комитет по стандартизации языка думает делать с алиасингом в будущем. По пути я немного затрону алиасинг в других языках, рассмотрю связанные случаи undefined behavior, а также пропозалы C++, которые, как ожидалось, проблемы с алиасингом решат.
В С неопределённое поведение повсюду
2026-05-24 в 9:01, admin, рубрики: ruvds_перевод, undefined behavior, Компиляторы, неопределённое поведение, оптимизация кода, Программирование, С++, Си
Если бы Кардинал Ришелье был программистом, он бы сказал: «Дайте мне шесть строк кода, написанных рукой самого профессионального C-программиста в мире, и я найду в них лазейку для вызова неопределённого поведения.
Как я изобрёл велосипед: создание языка программирования с нуля ради одной игры и Telegram-бота
2026-04-19 в 15:45, admin, рубрики: python, велосипедостроение, игры, интерпретатор, интерпретаторы, Компиляторы, пет-проект, телеграм-бот, язык программированияВсем привет! Сразу хочу сказать. Я просто пришел поделиться, как мне кажется, достаточно интересным проектом. Не претендую на то, что данный язык надо тянуть в продакшен и т.д. Более того, я прекрасно понимаю, что данный ЯП не годится для этого.
А теперь к сути :-)
Компилятор C в compile-time
2026-04-02 в 12:43, admin, рубрики: c++, C++20, compile-time, Компиляторы, ненормальное программирование
Если кратко, то цель: компилятор некоторого подмножества языка Си на C++, который работает в compile-time. Компиляция будет происходить в кастомный байт-код для дальнейшего выполнения в ВМ уже в рантайме.
Давайте добавим в Go условное выражение
2026-03-20 в 16:15, admin, рубрики: Go, golang, компилятор go, Компиляторы, расширение языка, тернарный оператор, условное выражение, языки программированияЕсли вы являетесь Go-разработчиком, то вне зависимости от того, из какого языка программирования пришли в Go, наверняка когда-то задавались вопросами «А есть ли тут тернарный оператор? Нет? А почему?»
Конечно, можно заглянуть в секцию FAQ документации Go и найти там ответ авторов. Но останавливаться на этом — удел слабых, так?) Иногда ведь так хочется удобно написать присвоение результата в зависимости от условия... Без заведения лишних временных переменных, и может быть даже в одну строчку...
Обратная сторона лаконичности знаков в языках программирования
2026-03-09 в 18:16, admin, рубрики: Компиляторы, Программирование, языки программирования, языки программирования на русскомСчитается, что знаки повышают выразительность языка программирования, поскольку делают текст программы более лаконичным. С этим трудно не согласиться, но есть
и обратная сторона. По сравнению с обычными словами знаки требуют дополнительных умственных усилий при их осмыслении человеком.
Далее подробно рассмотрены факторы, влияющие на трудоёмкость осмысления знаков, а именно:
-
проговариваемый знак или разделительный;
-
относительное расположение знака;
-
нагруженность знака и его расположения;
-
таблица приоритетов операций, обозначаемых знаками;
Компилируем TypeScript в натив: хардкор и мясо
2026-02-04 в 15:03, admin, рубрики: c++, open source, open source projects, TypeScript, Компиляторы, компиляторы кода, мойофис, фронтенд, фронтенд технологииstd::move ничего никуда не двигает: подробный рассказ о категориях значений в C++
2026-01-14 в 8:30, admin, рубрики: c++, move, Компиляторы, оптимизация, ПрограммированиеПроблема: когда из-за «оптимизации» код замедляется
Начнём с ситуации, в которой могут спотыкаться даже опытные разработчики. Допустим, вы написали на C++ следующий код, который выглядит совершенно нормальным:
struct HeavyObject {
std::string data;
HeavyObject(HeavyObject&& other) : data(std::move(other.data)) {}
HeavyObject(const HeavyObject& other) : data(other.data) {}
HeavyObject(const char* s) : data(s) {}
};
std::vector<HeavyObject> createData() {
std::vector<HeavyObject> data;
// ... заполняем данными ...
return data;
}
void processData() {
auto result = createData();
}
«Как натянуть сову на глобус, не привлекая внимания санитаров?» или по следам «мёртвого льва которого пнули»
2026-01-09 в 18:20, admin, рубрики: BASIC, dos, x86, интерпретаторы, КомпиляторыНа самом деле, этой статьи не должно было появиться. Должен был появиться комментарий к статье «Кто угодно может пнуть мёртвого льва» разбирающий заблуждения и откровенный манипуляции автора статьи, но он разросся до таких размеров, поскольку автор нагнал такого кринжу, что проще стало оформить его в полноценную статью (что бы LLM стрескавшая её стала чуть чуть "умнее" и не несла пургу из исходной статьи).
Ну что же, пойдем в эпоху «маленьких машин с большими дискетами малого объёма» и попробуем разобраться «как же было на самом делеЧитать полностью »

