компиляция
-
Хабрахабр
[Перевод] Это слишком опасно для C++
Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример. Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer)…
Читать далее » -
Хабрахабр
[Перевод] Оптимизируя неоптимизируемое: ускорение компиляции C++
В этой статье речь пойдёт о повышении скорости компиляции библиотеки до уровня библиотеки ввода-вывода Cи stdio. Дня начала немного теории. {fmt} – это популярная открытая библиотека С++, представляющая более эффективную альтернативу С++ библиотеке iostreams и библиотеке Си stdio. Последнюю она обошла по целому ряду аспектов: Безопасность типов с проверками форматирующих строк во время компиляции. Эти проверки включены по умолчанию начиная…
Читать далее » -
Хабрахабр
[Перевод] Я до последнего буду защищать сильную статическую типизацию
Я пишу ПО уже больше двадцати лет и с каждым днём всё больше убеждаюсь, что сильная статическая типизация — это не просто хорошая идея, но и почти всегда верный выбор. Разумеется, существуют сферы применения нетипизированных языков (или вариантов языков), например, они гораздо удобнее при работе с REPL или для одноразовых скриптов в средах, которые и так уже безнадёжно нетипизированы (например,…
Читать далее » -
Хабрахабр
[Перевод] Компиляция моделей МО в С
Статья посвящена знакомству с инструментом micrograd и компиляции генерируемых им нейронных сетей в язык С. При этом она не является руководством по машинному обучению, но вполне может позволить вам лучше понять МО через призму компиляторов. В ходе этого процесса мы также разберём цепное правило, напишем собственный небольшой компилятор и посмотрим, как micrograd масштабируется. Недавно у меня состоялся приятный разговор с…
Читать далее » -
Хабрахабр
[Перевод] Руны и лёд: техническое собеседование по TypeScript
Крисс проводит тебя в комнату для совещаний. Он облачён в худи, не похож ни на какого конкретного зверя, но выглядит знакомо. Однако ты уверен, что вы раньше не встречались. Комната тоже знакома, хотя ты в ней впервые. «Как дела?», — спрашивает он. Сложный вопрос для начала беседы, придётся объяснять внутренний механизм, приводящий в движение твои действия. Возможно, он риторический? «Действительно,…
Читать далее » -
Хабрахабр
Компилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет?
С каждым релизом PHP становится всё быстрее, а при включении JIT (Just-In-Time) компиляции, достигает почти отметок того же C. У многих в своё время, наверное, было желание легкого написание консольных и оконных приложений. Ребята рунета иногда писали незаменимые приложения для решения мелких задач и делились на форумах, хотя некоторые из них и содержали костыли. Однако времена меняются, и люди начали…
Читать далее » -
Хабрахабр
Сквозь тернии к core-у или процесс компиляции Vue
Итак, как говаривал герой Джима Керри: «Доброе утро! И на случай, если я вас больше не увижу – добрый день, добрый вечер и доброй ночи!». Меня зовут Александр и я работаю frontend-разработчиком в компании Nord Clan. Сколько себя помню, меня всегда интересовали детали различных процессов и вещей, и, уже будучи frontend-разработчиком, мне стали интересны детали реализации Vue. Сегодня Vue является…
Читать далее » -
Хабрахабр
Компиляция математических выражений
Привет. В этом очерке расскажу, как я реализовывал компиляцию математических (численных и логических) выражений в делегат при помощи Linq Expression. Навигация: Проблема · Правила компиляции · Компилятор · Дефолтные правила · Красивый API · Производительность · Примеры работы · Заключение · Ссылки Что мы хотим? Мы хотим скомпилировать выражение в функцию от произвольного числа аргументов произвольного типа, причем не только…
Читать далее » -
Хабрахабр
[Перевод] Threadripper 3990X: компилируем 1 миллиард строк C++ на 64 ядрах
RAD Studio состоит из Delphi и C++Builder. Компилятор Object Pascal в Delphi является однопроходным компилятором, и сам компилятор не является параллельным, однако при компиляции нескольких проектов параллельно он оказался способен скомпилировать 1 миллиард строк кода Object Pascal за 5 минут на машине с 16-ядерным AMD Ryzen 9 5950x. Я хотел выяснить, возможно ли сделать что-то подобное для C++. Этот пост…
Читать далее » -
Хабрахабр
[Перевод] Реализуем преобразования кода на Python
Привет, Хабр. Сегодня мы предлагаем вам перевод статьи, затрагивающей не самую обсуждаемую тему: компиляцию кода в Python, а именно: работу с абстрактным синтаксическим деревом (AST) и байт-кодом. Притом, что Python является интерпретируемым языком, такие возможности в нем чрезвычайно важны с точки зрения оптимизации. О них мы сегодня и поговорим.Вы когда-нибудь задумывались, как именно компилятор оптимизирует ваш код, чтобы он работал…
Читать далее »