Кратко
Я программист 1989 года рождения, имеющий высшее профильное образование и специализирующийся на разработке компиляторов. Знаком с компиляторами gcc, llvm, golang, lcc. Готов принимать заказы на разработку языков программирования, компиляторов и любых других инструментальных средств.
Опыт работы
- Февраль 2022 - н. в.: [ДАННЫЕ УДАЛЕНЫ].
- Январь 2021 - н. в.: МАИ, Преподаватель по совместительству.
- Ноябрь 2020: МАИ, Приглашённый лектор.
- Январь 2019 - Январь 2022 (3 года): АО "МЦСТ", Начальник сектора универсальных оптимизаций.
- Январь 2015 - Август 2021 (6 лет и 7 месяцев): МФТИ, Ассистент.
- Январь 2015 - Декабрь 2018 (3 года): АО "МЦСТ", Научный сотрудник.
- Август 2012 - Декабрь 2014 (2 года и 4 месяца): АО "МЦСТ", Младший научный сотрудник.
- Июль 2010 - Июль 2012 (2 года и 1 месяц): ЗАО "НПО "Эшелон", программист.
Публикации и выступления
Если есть время, я пишу или участвую в написании тезисов и публикаций для научных конференций:
- 2021 - "Механизм оптимизации Structure Splitting в составе компилятора для микропроцессоров Эльбрус", В.Е. Шампаров, А.Л. Маркин, Журнал "Программная инженерия"
- 2020 - "Обзор компилятора lcc для микропроцессора Эльбрус", А.Л. Маркин, V научно-техническая конференция АО «Концерн ВКО «Алмаз-Антей»
- 2019 - "Structure Splitting для компилятора для микропроцессоров Эльбрус", В.Е. Шампаров, А.Л. Маркин, SECR 2019
- 2018 - "Преобразование компилятором массива структур в несколько массивов", В.Е. Шампаров, А.Л. Маркин, 61-я научная конференция МФТИ
- 2018 - "Simple Type-Based Alias Analysis for a VLIW Processor", Aleksey Markin, Alexandr Ermolitsky, Tools and Methods of Program Analysis, pp.102-113
- 2017 - "Удаление немёртвых процедур, не влияющих на результат программы", В.Е. Шампаров, А.Л. Маркин, 60-я научная конференция МФТИ
- 2016 - "Inline-подстановка вызовов по указателю", А.Л. Маркин, А.В. Ермолицкий, 59-я научная конференция МФТИ
- 2015 - "Агрессивная инлайн-подстановка функций для VLIW-архитектур" Ермолицкий А.В., Нейман-заде М.И., Четверина О.А., Маркин А.Л., Волконский В.Ю., Труды ИСП РАН (том 27, вып. 6)
- 2014 - "Анализ указателей, основанный на правилах перекрытия объектов в памяти", А.Л. Маркин, А.В. Ермолицкий, 57-я научная конференция с международным участием, посвященная 120-летию со дня рождения П.Л. Капицы
- 2014 - "Анализ указателей в программах с вызовами библиотечных функций" А.Л. Маркин, А.В. Ермолицкий, I Всероссийская научно-техническая конференция «Расплетинские чтения»
Также можно посмотреть моё выступление на Yandex Day.
Образование
Сентябрь 2006 - май 2012 (6 лет): МАИ (НИУ), факультет прикладной математики и физики, кафедра вычислительной математики и программирования.
Май 2013 - май 2016 (3 года): Обучение в аспирантуре МИРЭА, сдал кандидатский минимум.
Технологии и решаемые проблемы
Занимаюсь разработкой оптимизаций для различных языков (C, C++, Fortran, Golang) и функциональных возможностей компиляторов данных языков. Знаком с различными аппаратными архитектурами (x86, sparc, e2k). Обладаю знаниями в области внутреннего устройства компиляторов, принципов повышения производительности программного обеспечения и пониманием низкоуровневой работы вычислительных систем.
Знаком с различными языками программирования, хотя предпочитаю язык C. Работаю в GNU/Linux окружении, имею базовые навыки администрирования. Пишу документацию в системах Sphinx и LaTeX.
Помимо разработки занимаюсь преподаванием и хорошо понимаю как нужно строить учебный курс и подавать материал для того чтобы его усвоили учащиеся.
Чем занимаюсь
Над компиляторами я работаю с 2012 года и сталкивался со следующими направлениями:
- Профилирование - специальное профилирование, применяемое компиляторами для получения информации о наиболее часто исполняющихся участках кода с целью определения необходимости оптимизации.
- Анализы указателей - вид анализа поведения программы для определения независимости операций работы с памятью. Результаты такого анализа необходимы для перестановки инструкций и ряда других оптимизаций.
- Санитайзеры - портирование на новую аппаратную платформу и новый компилятор.
- Прочее - набор различных межпроцедурных и попроцедурных оптимизаций среди которых находятся девиртуализация, определение общих подвыражений, оптимизация выражений и т.д. Кроме того перенос функциональных возможностей языка из одного компилятора в другой.
Официально я преподаю с 2015 года в МФТИ на ФРТК. Читаю курс "Разработка оптимизирующих компиляторов" для инженеров и программистов. За это время под моим руководством защитилось несколько бакалавров и магистров по темам, связанным с оптимизациями в компиляторе.
Прочее
Для связи со мной можно воспользоваться почтой: alexanius@gmail.com.