компиляция

  • ХабрахабрФото [Перевод] Это слишком опасно для C++

    [Перевод] Это слишком опасно для C++

    Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример. Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer)…

    Читать далее »
  • ХабрахабрФото [Перевод] Оптимизируя неоптимизируемое: ускорение компиляции C++

    [Перевод] Оптимизируя неоптимизируемое: ускорение компиляции C++

    В этой статье речь пойдёт о повышении скорости компиляции библиотеки до уровня библиотеки ввода-вывода Cи stdio. Дня начала немного теории. {fmt} – это популярная открытая библиотека С++, представляющая более эффективную альтернативу С++ библиотеке iostreams и библиотеке Си stdio. Последнюю она обошла по целому ряду аспектов: Безопасность типов с проверками форматирующих строк во время компиляции. Эти проверки включены по умолчанию начиная…

    Читать далее »
  • ХабрахабрФото [Перевод] Я до последнего буду защищать сильную статическую типизацию

    [Перевод] Я до последнего буду защищать сильную статическую типизацию

    Я пишу ПО уже больше двадцати лет и с каждым днём всё больше убеждаюсь, что сильная статическая типизация — это не просто хорошая идея, но и почти всегда верный выбор. Разумеется, существуют сферы применения нетипизированных языков (или вариантов языков), например, они гораздо удобнее при работе с REPL или для одноразовых скриптов в средах, которые и так уже безнадёжно нетипизированы (например,…

    Читать далее »
  • ХабрахабрФото [Перевод] Компиляция моделей МО в С

    [Перевод] Компиляция моделей МО в С

    Статья посвящена знакомству с инструментом micrograd и компиляции генерируемых им нейронных сетей в язык С. При этом она не является руководством по машинному обучению, но вполне может позволить вам лучше понять МО через призму компиляторов. В ходе этого процесса мы также разберём цепное правило, напишем собственный небольшой компилятор и посмотрим, как micrograd масштабируется. Недавно у меня состоялся приятный разговор с…

    Читать далее »
  • ХабрахабрФото [Перевод] Руны и лёд: техническое собеседование по TypeScript

    [Перевод] Руны и лёд: техническое собеседование по TypeScript

    Крисс проводит тебя в комнату для совещаний. Он облачён в худи, не похож ни на какого конкретного зверя, но выглядит знакомо. Однако ты уверен, что вы раньше не встречались. Комната тоже знакома, хотя ты в ней впервые. «Как дела?», — спрашивает он. Сложный вопрос для начала беседы, придётся объяснять внутренний механизм, приводящий в движение твои действия. Возможно, он риторический? «Действительно,…

    Читать далее »
  • ХабрахабрФото Компилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет?

    Компилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет?

    С каждым релизом PHP становится всё быстрее, а при включении JIT (Just-In-Time) компиляции, достигает почти отметок того же C. У многих в своё время, наверное, было желание легкого написание консольных и оконных приложений. Ребята рунета иногда писали незаменимые приложения для решения мелких задач и делились на форумах, хотя некоторые из них и содержали костыли. Однако времена меняются, и люди начали…

    Читать далее »
  • ХабрахабрФото Сквозь тернии к core-у или процесс компиляции Vue

    Сквозь тернии к core-у или процесс компиляции Vue

    Итак, как говаривал герой Джима Керри: «Доброе утро! И на случай, если я вас больше не увижу – добрый день, добрый вечер и доброй ночи!». Меня зовут Александр и я работаю frontend-разработчиком в компании Nord Clan. Сколько себя помню, меня всегда интересовали детали различных процессов и вещей, и, уже будучи frontend-разработчиком, мне стали интересны детали реализации Vue. Сегодня Vue является…

    Читать далее »
  • ХабрахабрФото Компиляция математических выражений

    Компиляция математических выражений

    Привет. В этом очерке расскажу, как я реализовывал компиляцию математических (численных и логических) выражений в делегат при помощи Linq Expression. Навигация: Проблема · Правила компиляции · Компилятор · Дефолтные правила · Красивый API · Производительность · Примеры работы · Заключение · Ссылки Что мы хотим? Мы хотим скомпилировать выражение в функцию от произвольного числа аргументов произвольного типа, причем не только…

    Читать далее »
  • ХабрахабрФото [Перевод] Threadripper 3990X: компилируем 1 миллиард строк C++ на 64 ядрах

    [Перевод] 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

    Привет, Хабр. Сегодня мы предлагаем вам перевод статьи, затрагивающей не самую обсуждаемую тему: компиляцию кода в Python, а именно: работу с абстрактным синтаксическим деревом (AST) и байт-кодом. Притом, что Python является интерпретируемым языком, такие возможности в нем чрезвычайно важны с точки зрения оптимизации. О них мы сегодня и поговорим.Вы когда-нибудь задумывались, как именно компилятор оптимизирует ваш код, чтобы он работал…

    Читать далее »


Кнопка «Наверх»