185 похожих чатов

Коллеги, позвольте я задам вопрос-оффтопик (надеюсь модераторы будут не против). Среди

обитателей чата наверняка многие занимаются разработкой компиляторов профессионально. Расскажите, пожалуйста, как вы попали в эту индустрию? И вообще что собой представляет данная индустрия, чем вы занимаетесь повседневно?

Я много лет интересуюсь некоторыми аспектами создания компиляторов на любительском уровне, но совершенно не представляю себе как выглядит профессиональная работа в этой области, и, допустим, как в эту индустрии можно было бы (гипотетически) попасть.

19 ответов

18 просмотров

Попасть - пойти на соответствующую вакансию, имея какие-то знания и навыки. Ну или студентом прийти учиться - есть места, где этому учат. А чем заниматься... Конкретно я наблюдаю (и сам занимаюсь) бэкендом - в нашем случае это в большинстве своём оптимизации и сильно связанный с ними кодген. И области рядом: профилировщики, прочие тулы, библиотеки...

Ilya-Lakhin Автор вопроса
Viktor Shamparov
Попасть - пойти на соответствующую вакансию, имея ...

> есть места, где этому учат А где, например?

Я как любитель делал мелкие патчи и делал рефакторинг GCC, потом начал искать вакансии и подаваться, в итоге нашёл работу связанную с компиляторами.

Ilya-Lakhin Автор вопроса
Mikhail Maltsev
Я как любитель делал мелкие патчи и делал рефактор...

А что именно за работа, если не секрет? При найме вам помог опыт контрибьюта в GCC? Что, на ваш взгляд, было ключевым при отборе кандидатов?

Ilya Lakhin
А что именно за работа, если не секрет? При найме ...

Ну изначально я занимался бэкедами Arm и AArch64 и LLVM. По поводу отбора, да, мы смотрим на опыт работы именно в области компиляторов, но это не критично, можно иметь общее представление на уровне университетского/online курса

Хотел попасть, но не особо стремился. Потом знакомый предложил пореферить в команду, которая занимается компиляторами. Ну так и попал.

Я перешёл из Java и кровавого энтерпрайза: в какой-то момент надоело перекладывать JSON'ы, захотелось чего-то более интеллектуального. Начинал через то, с чем работал: Java-машину, а, так как она написана на C++, то пришлось резво вспоминать его, скорее даже учить заново и параллельно при этом заниматься постижением предметной области собственно компиляторов: начиная от лексеров/парсеров и до доминаторов (с понятием был уже хорошо знаком благодаря опыту анализа хипдампов), датафлоу анализа и некоторых оптимизаций. Работу смог найти благодаря опыту контрибьютинга в опенсорс, прежде всего LLVM. Столкнулся наверное с теми же проблемами, что и остальные свитчеры: нужен коммерческий опыт, а его нет, потому что нужен коммерческий опыт. Сейчас занимаюсь бинарной оптимизацией. По индустрии: когда был Интел, там занимались и высокоуровневыми вещами типа SYCL, и довольно низкоуровневыми типа бэкендов к конкретным железкам. Сейчас, подозреваю, остались только бэкенды и соответствующие оптимизаторы. Если посмотреть шире, то есть анализаторы кода, тот же PVS, какие-то проекты, связанные с многопоточностью: видел контору из Германии, они пишут плагины для IDE, предлагающие оптимизации для разрабатываемого кода, показалось интересным. Сейчас ещё появились компиляторы для тензорных микропроцессоров, там интересные задачи в области работы с датафлоу графами. Искал что-то по консалтингу в области компиляторов и оптимизаций, но не нашел такой ниши.

Я в индустрию компиляторостроения не влазил, но рекрутеры Хуавея по вакансиям этой направленности просто в телеге пару раз писали.

Ilya Lakhin
> есть места, где этому учат А где, например?

А вы разве не выпускник ММФ НГУ? У нас и учат, и карьера компиляторщика вполне себе начинается после этого (Excelsior/Huawei)

Ilya-Lakhin Автор вопроса
Ivan Ugliansky
А вы разве не выпускник ММФ НГУ? У нас и учат, и ...

В начале 2000-х на Мехмате, к сожалению, предлагали специализироваться в основновном только в области термодинамики. Поэтому я оттуда ушёл, не закончив. А с другими факультетами/ВУЗамм программа Мехмата не особо совместима, поэтому я в конечном итоге остался без образования, и без специализации. Во времена, когда вы там учились, Мехмат кажется стал получше в этом смысле.

Ilya-Lakhin Автор вопроса
Pavel Samolysov
Я перешёл из Java и кровавого энтерпрайза: в какой...

> Столкнулся наверное с теми же проблемами, что и остальные свитчеры Я правильно понимаю, что при найме учитывали именно ваш опыт контрибьюта в LLVM?

Ilya Lakhin
> Столкнулся наверное с теми же проблемами, что и ...

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

Pavel Samolysov
Я перешёл из Java и кровавого энтерпрайза: в какой...

Что за доминаторы-то? Я только помню тех, которые во вторых Космических Ренджерах были

TOV_MULTIMASSO
Что за доминаторы-то? Я только помню тех, которые ...

Забавно, что если в Гугле набрать в поиске dominator tree, то в картинках он что-то такое и выведет. А вообще вот: https://en.m.wikipedia.org/wiki/Dominator_(graph_theory)

TOV_MULTIMASSO
Что за доминаторы-то? Я только помню тех, которые ...

Кстати, они полезны даже если не пишешь компилятор, и считаются очень простым алгоритмом.

TOV_MULTIMASSO
для чего?

Даёт отношение «X требуется только потому, что требуется Y».

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Карта сайта