compiler

  • СофтФото Подводные камни С++. Решаем загадки неопределённого поведения, ч. 1

    Подводные камни С++. Решаем загадки неопределённого поведения, ч. 1

    Изучение и понимание неопределённого поведения — важный шаг для разработчика C++, поскольку undefined behavior бывает источником серьёзных ошибок и проблем в программах. UB может проявляться в разных аспектах языка, включая операции с памятью, многопоточность, арифметические вычисления, работу с указателями и так далее. Под катом мы погрузимся в мир неопределённого поведения в C++ и рассмотрим некоторые примеры ситуаций, в которых оно…

    Читать далее »
  • ХабрахабрФото Компилирование и исполнение Java-кода в Runtime

    Компилирование и исполнение Java-кода в Runtime

    Привет Хабр! Сегодня я хотел бы поговорить про динамическое компилирование и исполнение Java-кода, подобно скриптовым языкам программирования. В этой статье вы найдете пошаговое руководство как скомпилировать Java в Bytecode и загрузить новые классы в ClassLoader на лету. Зачем? В разработке все чаще возникают типовые задачи, которые можно было бы закрыть простой генерацией кода. Например, сгенерировать DTO классы по имеющейся спецификации…

    Читать далее »
  • ХабрахабрФото Используем SWC с Firebase функциями

    Используем SWC с Firebase функциями

    В этой статье рассмотрим использование компилятора для js-кода облачных функций. Проблема Создаем проект. Добавляем Firebase функцию. // index.jsexport const helloWorld = https.onRequest(/** … */); Через некоторое время добавляем ещё несколько. // index.jsexport const helloWorld = https.onRequest(/** … */);export const lol = https.onRequest(/** … */);export const pirojok = https.onRequest(/** … */); Ещё через некоторое время ещё и ещё. А так как…

    Читать далее »
  • ХабрахабрФото [Перевод] TypeScript: разрабатываем WebAssembly-компилятор

    [Перевод] TypeScript: разрабатываем WebAssembly-компилятор

    Привет, друзья! Представляю вашему вниманию перевод этой замечательной статьи, в которой автор рассказывает о том, как разработать компилятор для WebAssembly на TypeScript. Обратите внимание: мой вариант компилятора можно найти в этом репозитории, а поиграть с его кодом можно в этой песочнице. Если вам это интересно, прошу под кат. Что такое WebAssembly и зачем он нужен? Если вы никогда раньше не…

    Читать далее »
  • ХабрахабрФото Nanopass или как я писал компилятор этой осенью

    Nanopass или как я писал компилятор этой осенью

    Сразу прошу прощения за несколько надоевший всем стиль «lytdybr», но уж очень хочется поделиться крайне приятным опытом и рассказать о по-своему замечательном компиляторном курсе. И это ещё хорошо, что я пишу сейчас, когда эмоции подугасли, а не когда я только закончил вторую главу курса и от эйфории чувствовал себя как «хомячок, которого капля никотина разрывает на части»! Сразу предупреждаю, наверняка…

    Читать далее »
  • ХабрахабрФото Как устроен вывод Generic-типов в Java

    Как устроен вывод Generic-типов в Java

    Добрый день! Меня зовут Владислав Верминский, я отвечаю за развитие профессии JVM-разработчика в Райффайзенбанке. В этой статье я расскажу про неоднозначность вывода типов в Java. На первый взгляд с ним всё очевидно, но когда сталкиваешься со странным поведением, возникают вопросы — начинает казаться, что какие-то части кода работают неправильно. Однако, после анализа становится понятно, что всё очень непросто, но при…

    Читать далее »
  • ХабрахабрФото Как скомпилировать Python

    Как скомпилировать Python

    Привет, Хабр! Я хочу рассказать об удивительном событии, о котором я узнал пару месяцев назад. Оказывается, одна популярная python-утилита уже более года распространяется в виде бинарных файлов, которые компилируются прямо из python. И речь не про банальную упаковку каким-нибудь PyInstaller-ом, а про честную Ahead-of-time компиляцию целого python-пакета. Если вы удивлены так же как и я, добро пожаловать под кат. Объясню,…

    Читать далее »
  • ХабрахабрФото Должен ли out-параметр быть проинициализирован до возврата из метода?

    Должен ли out-параметр быть проинициализирован до возврата из метода?

    Наверняка каждый, кто писал на C#, сталкивался с использованием out-параметров. Кажется, что с ними всё предельно просто и понятно. Но так ли это на самом деле? Для затравки предлагаю начать с задачки для самопроверки. Напомню, что out-параметры должны быть проинициализированы вызываемым методом до выхода из него. А теперь посмотрите на следующий фрагмент кода и ответьте, компилируется ли он. void CheckYourself(out…

    Читать далее »
  • ХабрахабрФото Простой интерпретатор Lisp на Umka

    Простой интерпретатор Lisp на Umka

    Разработка моего статически типизированного скриптового языка Umka вошла в ту стадию, когда потребовалась проверка языковых возможностей на более сложных примерах, чем скрипты в пару десятков строк. Для этого я решил реализовать на своём языке интерпретатор Lisp. На это меня вдохновил педагогический эксперимент Роба Пайка, одного из создателей языка Go. Недавно Пайк опубликовал маленький интерпретатор Lisp на Go. Особенно впечатлило замечание…

    Читать далее »
  • ХабрахабрФото Проверка компилятора GCC 10 с помощью PVS-Studio

    Проверка компилятора GCC 10 с помощью PVS-Studio

    Компилятор GCC написан с обильным использованием макросов. Очередная проверка кода GCC с помощью PVS-Studio вновь подтверждает мнение нашей команды, что макросы – это плохо. В таком коде тяжело разбираться не только статическому анализатору, но и программисту. Конечно, разработчики GCC уже привыкли к проекту и хорошо разбираются в нём. Но со стороны очень сложно что-то понять. Собственно, из-за макросов и не…

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


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