Pull to refresh
20
3.4

Поговорим об оптимизирующих компиляторах. Сказ первый: SSA-форма

Level of difficulty Medium
Reading time 9 min
Views 7.3K
Compilers *

Всем привет. Сегодня я хотел бы поговорить об устройстве современных оптимизирующих компиляторов. Я никогда не публиковался на Хабре ранее, но надеюсь, что мне удастся написать серию статей, которая просуммирует мой опыт в этой области.

Коротко обо мне. Меня зовут Макс, и так получилось, что я вот уже 10 лет, почти с самого начала своей карьеры, занимаюсь оптимизирующими компиляторами. Я начинал в Intel, потом перешёл в Azul Systems, год провёл в Cadence и вернулся обратно, всё это время занимаясь компиляторными оптимизациями для Java, C++ и нейросетевых моделей. На момент написания статьи у меня чуть за 900 патчей в LLVM, большинство из них посвящено цикловым оптимизациям.

За это время я провёл десятки собеседований на позиции как интернов, так и инженеров сеньорного уровня, и довольно часто люди, приходя на эти собеседования, многих вещей не знают или знают поверхностно. И я подумал: а мог бы я написать такой цикл статей, чтобы человек, прочитав их, узнал бы всю ту базу, которая, на мой собственный взгляд, необходимо начинающему компиляторному инженеру? Очень бы хотелось, чтобы новичку в этой области можно бы было дать один (относительно небольшой по объёму) набор текстов, чтобы он получил оттуда всё необходимое для старта. Это не перевод, текст оригинальный, поэтому в нём могут быть ошибки и неточности, которые я буду рад исправить, если вы мне их укажете.

Итак, поехали.

Погрузиться
Total votes 121: ↑119 and ↓2 +117
Comments 58

PostgreSQL под капотом. Часть 5. Простой SELECT запрос

Reading time 42 min
Views 3.9K
Open source *PostgreSQL *Programming *System Analysis and Design *C *

Приветствую!

В этой статье рассмотрим какой путь проходит простой SELECT запрос. От стадии сырой строки до отправки ответа клиенту.

А еще:

Работу со статистикой приложения через API Linux.

Реализацию динамического списка.

«Наследование» в C.

Как ведется работа с диском в БД.

Немного легаси.

Читать далее
Total votes 13: ↑13 and ↓0 +13
Comments 4

Как написать (игрушечную) JVM

Reading time 10 min
Views 6.7K
Timeweb Cloud corporate blog Java *
Translation
Статья про KVM оказалась интересной для читателей, поэтому сегодня публикуем новый перевод статьи Serge Zaitsev: как работает Java Virtual Machine под капотом.

Нравится нам это или нет, но Java — один из наиболее распространенных и широко используемых языков программирования. Однако не каждый Java-разработчик настолько любопытен, чтобы заглянуть под капот и посмотреть, как устроена JVM.

Я попытаюсь написать игрушечную (и неполную) JVM, чтобы показать основные принципы ее работы. Надеюсь, эта статья вызовет у вас интерес и вдохновит на дальнейшее изучение JVM.
Читать дальше →
Total votes 24: ↑24 and ↓0 +24
Comments 2

It is Wednesday, my java dudes, или насколько сложно сделать свою JVM

Reading time 11 min
Views 10K
Abnormal programming *Java *Rust *
☕️ Season Java
✏️ Technotext 2022

Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения?

Конечно же вырабатывать дофамин через решение упоротых инженерных задач!

Мне стало интересно - насколько тяжко было бы сделать свой интерпретатор байт-кода Java? И насколько сложно было бы научить его “новым трюкам”?

Писать я буду на Rust, поэтому и проект, не мудрствуя лукаво, назвал Rjava.

Читать далее
Total votes 67: ↑66 and ↓1 +65
Comments 26

7 лет одиночества: как интроверту завести знакомства и найти друзей

Level of difficulty Easy
Reading time 7 min
Views 33K
IT career Lifehacks for geeks Health

Тарелка жареной картошки, сочный стейк и бокал вина. Можно наслаждаться жизнью и до двух ночи смотреть любимый сериал. Жить одному — что может быть лучше? Съеден стейк. Выпито вино. Стелю постель, и на миг становится зябко и одиноко — снова это острое чувство, что жизнь проходит впустую. Неужели я всегда буду один?

Читать далее
Total votes 129: ↑90 and ↓39 +51
Comments 295

PostgreSQL под капотом. Часть 0. Старт программы

Reading time 17 min
Views 11K
Open source *PostgreSQL *System Analysis and Design *C *Reverse engineering *

Postgres - один из крупнейших open source проектов. Он создавался многие года. Кодовая база накопилась огромная. Мне, как программисту, всегда было интересно как он работает под капотом. Но не про SQL пойдет речь, а про язык на котором он написан. Про C. 

С общей архитектурой можно ознакомиться здесь

Для начала поймем, что происходит до входа в главный цикл сервера.

Читать далее
Total votes 24: ↑24 and ↓0 +24
Comments 2

С++ exception handling под капотом или как же работают исключения в C++

Reading time 15 min
Views 64K
C++ *Algorithms *
Translation

От переводчика


В мире победили языки высокого уровня и в мирах руби-питон-js разработчиков остается только разглагольствовать, что в плюсах не стоит использовать то или иное. Например, исключения, потому что они медленные и генерируют много лишнего кода. Стоило спросить "и какой же код он генерирует", как в ответ получил мямленье и мычание. А и правда — как же они работают? Ну что ж, компилируем в g++ с флагом -S, смотрим что получилось. Поверхностно разобраться не сложно, однако то, что остались недопонимания — не давали мне спать. К счастью, готовая статья нашлась.

На хабре есть несколько статей, подробных и не очень (при этом все равно хороших), посвященных тому, как работают exceptions в C++. Однако нет ни одной по-настоящему глубокой, поэтому я решил восполнить этот пробел, благо есть подходящий материал. Кому интересно как работают исключения в C++ на примере gcc — запаситесь pocket-ом или evernote, свободным временем и добро пожаловать под кат.
Читать дальше →
Total votes 38: ↑37 and ↓1 +36
Comments 10

Антивирус Бабушкина

Reading time 1 min
Views 455K
Antivirus protection *


Молодой студент-третьекурсник из АлтГТУ разработал компьютерную антивирусную программу под названием “Иммунитет”. По словам АП, эту программу сейчас устанавливают в некоторых школах Барнаула. На данный момент продано уже более тысячи копий этого антивируса! В основном ее устанавливают на персональных компьютерах, но уже приобрели несколько школ и компаний краевого центра.
Читать дальше →
Total votes 552: ↑474 and ↓78 +396
Comments 1261

Information

Rating
784-th
Registered
Activity