Size: a a a

Compiler Development

2020 June 01

MM

Mikhail Maltsev in Compiler Development
Evgenii Moiseenko
смотрите proceedings следующих конференций: Principles of Programming Languages (POPL), Programming Language Design and Implementation (PLDI), Object-Oriented Programming, Systems, Languages & Applications (OOPSLA).
Можно прям заходить на сайт конференций, смотреть accepted papers и потом их искать на scholar.google.com  (многие авторы выкладывают препринты своих работ в открытый доступ).

Есть ещё несколько конференций чуть поменьше (в плане импакта): ECOOP, ICFP, ESOP, VMCAI и много других, которых я не знаю :)
Спасибо
источник

PS

Peter Sovietov in Compiler Development
Mikhail Maltsev
Да, я подписан на ваш канал. Но мне скорее про первоисточники было интересно
Основные текущие компиляторные конференции там перечислены в первом сообщении.
Могу порекомендовать для поиска следующий подход. Берете классическую старую статью по тематике, которая Вас интересует. Находите ее на google scholar и смотрите, кто в последние годы на нее сослался.
источник

a

alekum in Compiler Development
Можно еще следить за исследовательской группой или исследователем. Я отсматриваю  людей и их цитируемость, так можно перекрестные работы найти, узнать про новые лица и их работу. И что то потом сохраняю себе.
источник

MM

Mikhail Maltsev in Compiler Development
Ясно, спасибо
источник

AN

Alexander Nasonov in Compiler Development
Anton Podkopaev
Организаторы конференции PLDI попросили меня её прорекламировать.
Эта одна из двух-трёх лучших конференций по языкам программирования. В этом году у неё очень интересная программа
и не потому, что мне повезло быть соавтором двух статей на ней, а участие бесплатно, но
требуется регистрация, которая закрывается уже 5го июня.

Ниже сообщение от главы программного комитета PLDI.

======
This year’s ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) is going to run as a virtual conference during 15-20 June.
Registration for the conference closes on 5 June, and registration is free.

We have an exciting program of technical papers, as well as “Ask Me Anything” sessions with 16 special guests,
including Chris Lattner (founder of the LLVM project), Kathryn McKinley (a world leader in automated memory management techniques), Simon Peyton Jones (a major contributor to the Haskell language) and Bjarne Stroustrup (creator of C++).

You can see the complete program, and details on how to register, at the PLDI 2020 website: https://pldi20.sigplan.org/

The conference will be delivered as a Zoom webinar and there will be a dedicated Slack workspace to support interaction.
Joining instructions for Zoom and Slack will be provided after registration, and this video illustrates how the conference will work: https://www.doc.ic.ac.uk/~afd/AboutPLDISmall.mp4

We would like our virtual conference to reach the widest possible international audience, so please help us to spread the word!

I hope to see you at virtual PLDI in June!

Alastair Donaldson, PLDI 2020 General Chair

P.S. Check out our PLDI song: https://www.doc.ic.ac.uk/~afd/PLDISongSmall.mp4 (on Youtube: https://youtu.be/hVMCl64Uhe8)
ACM SIGPLAN выложили много коротких видео, наверное можно их назвать video abstracts. Вот один пример такого видео https://youtu.be/QjvMChhOC90
источник

M

MaxGraey in Compiler Development
Там довольно забавные ролики есть
https://www.youtube.com/watch?v=B6CNZTHSuno
источник

ML

Mikhail Levchenko in Compiler Development
Дилетантский вопрос – я прочёл где-то, что компиляторов, работающих в параллель, практически нет. И быстрый поиск в гугле тоже не нашел ничего. Это правда? Почему так?
источник

AT

Alexander Tchitchigi... in Compiler Development
Mikhail Levchenko
Дилетантский вопрос – я прочёл где-то, что компиляторов, работающих в параллель, практически нет. И быстрый поиск в гугле тоже не нашел ничего. Это правда? Почему так?
Врут! rustc в параллель translation units обрабатывает! 😃
источник

p

polunin.ai in Compiler Development
Mikhail Levchenko
Дилетантский вопрос – я прочёл где-то, что компиляторов, работающих в параллель, практически нет. И быстрый поиск в гугле тоже не нашел ничего. Это правда? Почему так?
Раст паралельно умеет компилировать пакеты
источник

AT

Alexander Tchitchigi... in Compiler Development
Но вообще, потому что основная осмысленная единица параллелизации — файл, а по ним распараллеливается методом make -j.
источник

AZ

Alexander Zaitsev in Compiler Development
Mikhail Levchenko
Дилетантский вопрос – я прочёл где-то, что компиляторов, работающих в параллель, практически нет. И быстрый поиск в гугле тоже не нашел ничего. Это правда? Почему так?
можешь почитать про проект по параллелизации gcc
источник

VM

Victor Miasnikov in Compiler Development
Mikhail Levchenko
Дилетантский вопрос – я прочёл где-то, что компиляторов, работающих в параллель, практически нет. И быстрый поиск в гугле тоже не нашел ничего. Это правда? Почему так?
Был в Active Oberon
источник

MM

Mikhail Maltsev in Compiler Development
Mikhail Levchenko
Дилетантский вопрос – я прочёл где-то, что компиляторов, работающих в параллель, практически нет. И быстрый поиск в гугле тоже не нашел ничего. Это правда? Почему так?
Некоторые вещи трудно распараллелить: во-первых frontend, во-вторых межпроцедурные оптимизации. С frontend-ами никто не заморачивается потому что make -j, как уже отметили выше. Оптимизации имеет смысл распараллеливать при LTO, т.е. когда оптимизируется вся программа целиком. Это реализовано, как минимум, в GCC и Clang.
источник

MM

Mikhail Maltsev in Compiler Development
В GCC сделано так: frontend генерирует промежуточное представление для каждой единицы трансляции (файла) и делает несколько оптимизаций цель которых быстро избавиться то мёртвого кода (чтобы следующему, последовательному этапу досталось меньше работы). Далее, промежуточное представление всей программы считывается, строится полный граф вызовов и объединяется некоторая мета-информация, известная о функциях. На основе этого граф снова разбивается на несколько частей (так чтобы по возможности сократить кол-во вызовов между частями) и каждая часть оптимизируется параллельно с остальными, дальше всё компонуется вместе.
источник

ML

Mikhail Levchenko in Compiler Development
Окей, спасибо за исчерпывающие ответы, пошел дальше читать
источник

D

Denis in Compiler Development
Mikhail Maltsev
В GCC сделано так: frontend генерирует промежуточное представление для каждой единицы трансляции (файла) и делает несколько оптимизаций цель которых быстро избавиться то мёртвого кода (чтобы следующему, последовательному этапу досталось меньше работы). Далее, промежуточное представление всей программы считывается, строится полный граф вызовов и объединяется некоторая мета-информация, известная о функциях. На основе этого граф снова разбивается на несколько частей (так чтобы по возможности сократить кол-во вызовов между частями) и каждая часть оптимизируется параллельно с остальными, дальше всё компонуется вместе.
ParallelGcc там еще не завезли?
источник

PS

Peter Sovietov in Compiler Development
Есть очевидный подход, но он, к сожалению, на обычных настольных процессорах трудно осуществим. Архитектура обычного компилятора — конвейер из большого числа фаз. Конвейеризацию уровня задач можно реализовать на manycore-архитектурах. Но я не слышал о реальных случаях использования такого подхода к ускорению компиляции.
источник

M

MaxGraey in Compiler Development
Rust умеет в параллельную кодогенерацию (codegen-units) но при этом есть проблемы с LTO а так же как downside качество параллельной кодогенирации хуже чем когда это делается в один поток
источник

MM

Mikhail Maltsev in Compiler Development
Denis
ParallelGcc там еще не завезли?
Думаю с полноценной реализацией Parallel GCC будут проблемы, потому что в GCC *очень* много глобального стейта. В LTO это решается за счёт запуска отдельных процессов, а в Parallel GCC хотят использовать потоки.
источник

МБ

Михаил Бахтерев... in Compiler Development
Mikhail Levchenko
Дилетантский вопрос – я прочёл где-то, что компиляторов, работающих в параллель, практически нет. И быстрый поиск в гугле тоже не нашел ничего. Это правда? Почему так?
Есть. Я вот нафигачил такой лично :)
источник