Реально ли найти работу, связанную с разработкой компиляторов?
Вообще, сейчас я веб-программист (PHP + front-side). Но есть и некоторый опыт работы на C++. В том числе и касательно именно компиляторов - парсинг, оптимизации, трансляция в ассемблер. Даже писал свои простые компиляторы.
Разумеется, я понимаю что этого мало, и готов развиваться (до того, как искать работу). Изучить получше теорию парсинга, теорию оптимизаций, написать свой компилятор посложнее, сделать несколько патчей в open source компиляторы.
Но реально ли вообще найти работу, связанную с этим? Просто на том же HeadHunter в Москве по сути лишь одна вакансия, связанная с разработкой именно компиляторов, от Samsung. Висит при этом не один год (давно её видел). Я не говорю, что она плохая, но один вариант - это слишком мало. Вдруг не возьмут или впоследствии потребуется сменить по какой-либо причине работу. А вариантов больше нету.
Лично я не встречала, хотя по роду деятельности часто провожу мониторинг сайтов, HeadHunter, Rabota.ru, Job.ru, больно уж очень узкая специализация. Соответственно есть риск, будет ли она востребована в дальнейшем. Но решать конечно же вам.))
Найти -- реально, но как именно искать не подскажу. Знаю, что занимаются компиляторами питерский офис oracle и (бывший) питерский офис АМД.
По части вклада в opensource, если вы приложитесь к свежей архитектуре, за которой стоит не очень крупная компания, вас 100% заметят. Обычно компиляторная команда полностью занята и приоритет открытых инструментов для них, как правило, наименьший. Поэтому они всегда будут рады помощи со стороны, а там глядишь, и пригласят к себе.
Банально надо искать работу за рубежом по этому профилю, вот вы знаете хоть один русский компилятор, который входу? Наверно по этому вы не можете найти такую работу на русских сайтах.
Я умею пользоваться lex и yacc, хотя предпочитаю Boost.Spirit (не люблю дополнительные шаги сборки проекта, к тому же Boost.Spirit на C++).
Но при этом могу написать парсер с нуля, да. Считаю такой опыт необходимым тому, кто собирается профессионально заниматься компиляторами. Ведь генераторы парсеров часто не справляются с какой-нибудь сложной грамматикой. И многие компиляторы или интерпретаторы пишутся самостоятельно, без генераторов.
Да, вполне реально. Как тут уже заметили во-первых это МЦСТ. Во-вторых можете поискать вакансии в Intel. В России Intel занимаются разработкой компилятора для Itanium (насчёт x86 не знаю). И МЦСТ и Intel разрабатывают собственные, закрытые компиляторы.
В Samsung (по ситуации ~год назад) был набор для разработки llvm. Ещё разработкой компилятора (gcc, llvm) занимаются в Google. Не знаю отдельный это отдел или просто побочный вид деятельности, но задания там будут крайне интересные.
Сложно оценить реально или не реально, т.к. для чего и почему может потребоваться писать компилятор вопрос не однозначный.
Как пример статьи по компиляторостроению для нестандартного железа.
Труды ИСП РАН, том 33, вып. 5, 2021 г. // Trudy ISP RAN/Proc. ISP RAS, vol. 33, issue 5, 2021
Разработка компилятора для стековой процессорной ...
В первой версии компилятора архитектура TF16 рассматривалась как классическая регистровая архитектура, и сгенерированный код не использовал стековые возможности.
Эта версия была относительно проста в разработке и служила точкой сравнения для второй версии компилятора.
Во второй версии компилятора был разработан и реализован платформонезависимый алгоритм планирования команд c учётом особенностей стековых архитектур.
При сравнении двух версий версия компилятора с поддержкой стековых возможностей генерирует код, который в среднем на 35.7% быстрее по времени выполнения и на 50.8% меньше по размеру, чем код, генерируемый версией компилятора без поддержки стековых возможностей. Разработанный алгоритм позволяет реализовать в компиляторе LLVM поддержку других стековых процессорных архитектур.
P.S. Бывает ещё для FPGA используют какое то ядро встроенного своего процессора, а для него нет инструментария и добавляют свой инструментарий для написания/переноса софта под него длявыполнения.