Как стать автором
Обновить
41.13

Компиляторы *

Из исходного кода в машинный

Сначала показывать
Порог рейтинга

Релиз Tinygo 0.34 — компилятора языка Go для маломощных систем

Время на прочтение2 мин
Количество просмотров2.1K

В конце октября 2024 года состоялся релиз открытого проекта Tinygo 0.34. Это компилятор языка программирования Go для маломощных систем, таких как микроконтроллеры и встраиваемые устройства, которым необходима генерация очень компактных исполняемых файлов и низкое потребление ресурсов. В проекте Tinygo компиляция для поддерживаемых целевых платформ реализована при помощи LLVM, а библиотеки функций заимствованы из основного инструментария проекта Go. Исходный код решения опубликован на GitHub под лицензией BSD.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Новости

Инженер Red Hat Никита Попов стал ведущим мейнтейнером проекта LLVM

Время на прочтение2 мин
Количество просмотров4.4K

Сообщество разработчиков единогласно одобрило и подтвердило назначение инженера Red Hat Никиты Попова официальным ведущим мейнтейнером проекта компилятора LLVM с открытым исходным кодом.

Читать далее
Всего голосов 16: ↑16 и ↓0+20
Комментарии2

Релиз Python 3.13

Время на прочтение4 мин
Количество просмотров15K

7 октября 2024 года состоялся релиз стабильной версии языка программирования Python 3.13 с экспериментальным JIT-компилятором, улучшенным интерактивным интерпретатором на основе PyPy и экспериментальным режимом сборки free-threaded build mode. Поддержка этой ветки запланирована в течение полутора лет. Потом ещё три с половиной года для Python 3.13 будут выходить исправления с устранением уязвимостей.

Читать далее
Всего голосов 13: ↑13 и ↓0+16
Комментарии15

Microsoft пообещала «невероятный прирост производительности» современных приложений Windows 11

Время на прочтение2 мин
Количество просмотров7.6K

Microsoft заявила, что приложения на основе Windows App SDK в Windows 11 теперь смогут работать значительно быстрее. Ранние тесты показывают улучшение времени загрузки до 50% и уменьшение размера пакета приложения в 8 раз. 

Читать далее
Всего голосов 9: ↑9 и ↓0+14
Комментарии46

Истории

Вышла первая бета-версия языка программирования Python 3.13.0b1

Время на прочтение2 мин
Количество просмотров8.7K

8 мая 2024 года вышла первая бета-версия языка программирования Python 3.13.0b1 (3.13.0 beta 1) для тестирования с экспериментальным JIT-компилятором и улучшенным интерактивным интерпретатором на основе PyPy.

Читать далее
Всего голосов 9: ↑8 и ↓1+8
Комментарии11

В альфа выпуск языка программирования Python 3.13.0a6 встроен JIT-компилятор

Время на прочтение1 мин
Количество просмотров8.1K

Опубликован альфа выпуск языка программирования Python 3.13.0a6, в который включена экспериментальная реализация JIT-компилятора, позволяющая добиться существенного повышения производительности. Для активации JIT в CPython добавлена сборочная опция "--enable-experimental-jit". Для работы JIT требуется установка LLVM в качестве дополнительной зависимости.

Читать далее
Всего голосов 12: ↑12 и ↓0+14
Комментарии9

Вышел CVBasic v0.1.0 — первый релиз компилятора Basic для приставки ColecoVision 1982 года выпуска

Время на прочтение1 мин
Количество просмотров2.6K

В конце февраля 2024 года разработчик Оскар Толедо (aka nanochess) представил CVBasic v0.1.0. Это проект компилятора Basic для портирования и создания игр на приставке ColecoVision 1982 года выпуска.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии8

Ушёл из жизни швейцарский ученый Никлаус Вирт — разработчик Algol, Modula, Oberon и создатель Pascal

Время на прочтение5 мин
Количество просмотров22K

1 января 2024 года ушёл из жизни швейцарский ученый Никлаус Вирт (Niklaus Wirth) — специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор компьютерных наук Швейцарской высшей технической школы Цюриха (ETHZ), лауреат премии Тьюринга, автор книг по алгоритмам и структурам данных, ведущий разработчик языков программирования Euler, PL360, Algol W, Modula, Modula-2, Oberon, Oberon-2 и Oberon-07 и создатель Pascal. Пионер информатики и популяризатор парадигмы структурного программирования умер на 90-м году жизни в своём доме в окружении семьи и близких.

Читать далее
Всего голосов 82: ↑82 и ↓0+82
Комментарии51

Инженеры — о системном программировании и разработке микропроцессоров в подкасте «Битовые маски»

Время на прочтение2 мин
Количество просмотров1.1K

Разработчики ежедневно пользуются инструментами, которые создают системные программисты. Но мало кто погружен в детали устройства компиляторов, дебаггеров виртуальных машин, симуляторов и тем более — работал над их созданием. С новым подкастом «Битовые маски» вы познакомитесь с историей развития системного программирования и убедитесь, что в этой сфере много интересных и нерешенных задач. Под катом — тизеры первых выпусков.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Релиз LLVM 17.0

Время на прочтение2 мин
Количество просмотров3.3K
После полугода разработки был выпущен проект LLVM 17.0, о чем сообщается на сайте проекта. LLVM 17.0 является GCC-совместимым инструментом (включая компиляторы, оптимизаторы и генераторы кода). Он компилирует программы в промежуточные биткоды, похожие на RISC виртуальные команды (это низкоуровневая виртуальная машина с системой многоуровневых оптимизаций). Созданный псевдокод может быть конвертирован в машинные команды на лету с помощью JIT-компилятора во время работы программы.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Android-разработчики могут тестировать в своих проектах компилятор K2

Время на прочтение1 мин
Количество просмотров1.1K

Google сообщила в своём блоге, что Android-разработчики могут тестировать в своих проектах компилятор K2 для языка программирования Kotlin. Это поможет понять, готов ли проект к переезду на Kotlin 2.0.

Читать далее
Рейтинг0
Комментарии0

Вышел язык программирования Rust 1.70

Время на прочтение3 мин
Количество просмотров4.8K

Опубликован релиз языка программирования общего назначения Rust 1.70. Также была опубликована серия статей о внутреннем устройстве Rust.

Читать далее
Всего голосов 10: ↑7 и ↓3+7
Комментарии1

AMD запустила проект openSIL для разработки прошивок

Время на прочтение2 мин
Количество просмотров2.9K

AMD представила открытый проект openSIL (Open-Source Silicon Initialization Library), в рамках которого развивается набор открытых библиотек с компонентами для упрощения создания прошивок. 

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии1

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Вышла утилита cURL 8.0

Время на прочтение2 мин
Количество просмотров4.4K

Состоялся релиз утилиты cURL 8.0. Код проекта распространяется под открытой лицензией Curl (вариант лицензии MIT).

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Вышел Rust 1.60

Время на прочтение4 мин
Количество просмотров2.7K

Стал доступен релиз Rust 1.60, который развивает некоммерческая организация Rust Foundation. Он предоставляет средства для достижения высокого параллелизма выполнения заданий без использования сборщика мусора и runtime.

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии0

Кембридж: особенность компиляторов позволяет добавлять в исходный код вредоносы и обходить ручной аудит

Время на прочтение2 мин
Количество просмотров2.2K

Исследователи Кембриджского университета описали способ вставки в исходный код программ уязвимости или вредоносного кода, который позволяет успешно проходить ручной аудит. Фактически, они рассказали о методе атак, который использует особенность компиляторов.

Читать далее
Всего голосов 6: ↑5 и ↓1+10
Комментарии2

Facebook представила Superpack, технологию сжатия данных для мобильных приложений

Время на прочтение2 мин
Количество просмотров1.9K

IT-гигант Facebook разработал технологию асимметричного сжатия данных Superpack, сообщает пресс-релиз компании. Технология сочетает анализ компилятора и сжатие данных для оптимизации хранения информации.

В компании это решение объясняют тем, что приложения продолжают увеличиваться в размерах, и это плохо сказывается на производительности мобильных устройств, поэтому такие компиляторы, как Deflate и LZMA, несмотря на то, что на сегодняшний день справляются с оптимизацией данных, в скором времени потеряют актуальность.

Superpack основана на теории сложности Андрея Колмогорова, согласно которой информационное содержание фрагмента данных определяется размером самой короткой программы, которая может генерировать эти данные. Facebook не претендует на звание первопроходцев, базисы теории время от времени используют многие другие компании для организации данных, однако Superpack стремится усовершенствовать нынешние технологии, используя как методы компилятора, так и современные подходы оптимизации данных.

Читать далее
Всего голосов 9: ↑6 и ↓3+11
Комментарии3

Chrome 91 рендерит страницы на 23% быстрее. Спасибо третьему компилятору

Время на прочтение3 мин
Количество просмотров10K
// The Sparkplug compiler (abridged).
for (; !iterator.done(); iterator.Advance()) {
  VisitSingleBytecode();
}
Новый неоптимизирующий JavaScript-компилятор Sparkplug напрямую компилирует JavaScript в машинный код, без всяких промежуточных представлений, за однострочный проход. Это одна из оптимизаций в движке V8

Участники опенсорсного проекта Chromium из компании Google только что выкатили новую версию браузера Chrome 91 на стабильном канале. Как обычно, в новой версии сделано много изменений. Например, десктопный режим на больших мобильных экранах включается по умолчанию, улучшен дизайн веб-форм (поля, чекбоксы, кнопки), улучшены интерфейсы File System Access API, сделано автоматическое открытие PWA по ссылкам на веб-сайтах через манифест capture_links, реализована экспериментальная поддержка продвинутого медиапротокола WebTransport (вместо более медленного WebSocket) и многое другое. Кроме этих мелких, есть и очень серьёзное изменение, которое коснётся каждого.

Конечно, это изменение ожидаемо, если следить за документацией на бета- и альфа-каналах. Но остальные люди сегодня могут с удивлением обнаружить, что после обновления Chrome стал рендерить страницы гораздо быстрее.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+38
Комментарии16

Компиляторная бомба: 29 байт кода → 16 ГБ .exe

Время на прочтение2 мин
Количество просмотров55K
Достойный наследник ZIP-бомбы и PNG-бомбы (которая в своё время положила Хабр) — компиляторная бомба, которая генерирует огромный бинарник из нескольких строчек кода. Наилучший на сегодня вариант предложил в 2016 году пользователь StackExchange под ником Digital Trauma (последняя версия протестирована в 2020 году). Код на C:

main[-1u]={1};

Это 14 байт. По условиям конкурса к результату добавляется 15 обязательных байт (дополнительный параметр для компилятора).
Читать дальше →
Всего голосов 59: ↑52 и ↓7+70
Комментарии33

Выпуск Rust 1.44.0: cargo tree, async/await в no_std, Unicode 13 и vec![] в const-контексте

Время на прочтение3 мин
Количество просмотров3.4K

Данный анонс является компиляцией черновика анонса и подробных примечаний к выпуску. Официальный анонс короче, чем обычно:


This is a shorter blog post than usual: in acknowledgement that taking a stand against the police brutality currently happening in the US and the world at large is more important than sharing tech knowledge, we decided to significantly scale back the amount of promotion we're doing for this release.

The Rust Core Team

Команда Rust выпустила новую версию, 1.44.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.


Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.44.0 вам достаточно выполнить следующую команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии4
1

Вклад авторов