Size: a a a

Compiler Development

2020 June 05

AN

Alexander Nasonov in Compiler Development
Vladimir Kazanov
Одного не понимаю: как он все это успевает в одиночку-то
Извините за оффтопик. Я тоже не понимаю, как он успевает, особенно сейчас, когда у него маленький ребёнок.
источник

PS

Peter Sovietov in Compiler Development
Alexander Nasonov
Извините за оффтопик. Я тоже не понимаю, как он успевает, особенно сейчас, когда у него маленький ребёнок.
Объективности ради — компилятор в 1000 строк на Scheme это не такой уж титанический труд. К тому же для порождения кода там используется простая техника, которую мы тут неоднократно обсуждали.
источник

PS

Peter Sovietov in Compiler Development
Другое дело, что нужно обладать знаниями и опытом, чтобы в 1000 строк написать приличный backend компилятора, а не потратить еще больше строк на неуклюжую прослойку к LLVM и тоже назвать результат компилятором :)
источник

AN

Alexander Nasonov in Compiler Development
Peter Sovietov
Объективности ради — компилятор в 1000 строк на Scheme это не такой уж титанический труд. К тому же для порождения кода там используется простая техника, которую мы тут неоднократно обсуждали.
Мой bpfjit тоже простой, однако я его писал (в основном по полчаса в метро, и немного на выходных) пару лет, а закончил, когда был перерыв в работе. Некоторые проекты тяжело делать, если у тебя свободного времени всего пара часов в неделю.
источник

PS

Peter Sovietov in Compiler Development
Работа по синтезу программ с использованием Rosette (Racket). Cинтезируется JIT-компилятор DSL BPF (ядро Linux) в машинный код (в примере использован RISC-V)
Synthesizing JIT Compilers for In-Kernel DSLs
https://www.cs.utexas.edu/~isil/jitsynth.pdf

Подробности о BPF VM:
BPF: A New Type of Software
http://www.brendangregg.com/blog/2019-12-02/bpf-a-new-type-of-software.html

#synthesis #jit
источник

PS

Peter Sovietov in Compiler Development
Alexander Nasonov
Мой bpfjit тоже простой, однако я его писал (в основном по полчаса в метро, и немного на выходных) пару лет, а закончил, когда был перерыв в работе. Некоторые проекты тяжело делать, если у тебя свободного времени всего пара часов в неделю.
Интересно! А работу выше Вы видели?
источник

AN

Alexander Nasonov in Compiler Development
Peter Sovietov
Интересно! А работу выше Вы видели?
Нет ещё, но обязательно посмотрю! В долгосрочной перспективе я хочу научиться формальным методам и прикрутить их к bpf. Уже есть работы в этой области, у меня просто времени нет. И я тоже самоучка (по образованию физик с уклоном в численные методы).
источник

AN

Alexander Nasonov in Compiler Development
Ещё я считаю, у ebpf неправильный подход (посмотрите на код их верификатора!). Надо было переходить на IR, а не моделировать ABI 64битного интела.
источник

AN

Alexander Nasonov in Compiler Development
Alexander Nasonov
Ещё я считаю, у ebpf неправильный подход (посмотрите на код их верификатора!). Надо было переходить на IR, а не моделировать ABI 64битного интела.
Я это обсуждал с Andy на фосдем 2019 и он был со мной согласен.
источник

PS

Peter Sovietov in Compiler Development
Anton Podkopaev
Не компиляторщик? Учитывая то, что он один из основных разработчиков GHC?)
Прошу прощения, не сразу увидел сообщение. Я, скорее, имел ввиду, что он далеко не только компиляторщик :)

Но у меня есть и свой список выдающихся функциональных компиляторщиков :)

- R. Kent Dybvig (разработчик Chez Cheme, автор статьей по генерации кода и распределению регистров -- многое оттуда используется в V8 и других современных компиляторах)
- Andrew Appel (ключевой разработчик SML/NJ, автор знаменитых учебников по компиляции)
- Xavier Leroy (OCaml, CompCert)
- Norman Ramsey (работы по выбору команд, библиотека Hoopl)
- Matthew Fluet (ключевой разработчик Mlton, судя по всему первым предложил вариант SSA без phi-функций -- используется в Swift, MLIR)

Они интересны тем, что их влияние простирается далеко за пределы специальных применений из области ФП. Кстати, так вышло, что все они — профессора :)
источник

VK

Vladimir Kazanov in Compiler Development
Peter Sovietov
Прошу прощения, не сразу увидел сообщение. Я, скорее, имел ввиду, что он далеко не только компиляторщик :)

Но у меня есть и свой список выдающихся функциональных компиляторщиков :)

- R. Kent Dybvig (разработчик Chez Cheme, автор статьей по генерации кода и распределению регистров -- многое оттуда используется в V8 и других современных компиляторах)
- Andrew Appel (ключевой разработчик SML/NJ, автор знаменитых учебников по компиляции)
- Xavier Leroy (OCaml, CompCert)
- Norman Ramsey (работы по выбору команд, библиотека Hoopl)
- Matthew Fluet (ключевой разработчик Mlton, судя по всему первым предложил вариант SSA без phi-функций -- используется в Swift, MLIR)

Они интересны тем, что их влияние простирается далеко за пределы специальных применений из области ФП. Кстати, так вышло, что все они — профессора :)
Дык функциональная школа компиляторщиков по определению академическая, тут и подчёркивать нет смысла.
источник

PS

Peter Sovietov in Compiler Development
Vladimir Kazanov
Дык функциональная школа компиляторщиков по определению академическая, тут и подчёркивать нет смысла.
Я просто хотел продемонстрировать, что школа эта многообразнее, чем иногда кажется :) И, возможно, кто-то добавит еще несколько значимых имен.
источник

VS

Vasily Shapenko in Compiler Development
Don Syme
источник

PS

Peter Sovietov in Compiler Development
Спасибо! Как раз обновлю старое сообщение на PLComp.
источник

PS

Peter Sovietov in Compiler Development
Крупнейшая конференция по истории ЯП - HOPL IV - была перенесена, но некоторые интересные ретроспективные обзоры уже доступны:

The History of Standard ML
https://smlfamily.github.io/history/SML-history.pdf

Evolution of Emacs Lisp
https://www.iro.umontreal.ca/~monnier/hopl-4-emacs-lisp.pdf

History of Logo
https://escholarship.org/uc/item/1623m1p3

The Early History of F#
https://fsharp.org/history/hopl-final/hopl-fsharp.pdf

#conf #history
источник
2020 June 06

ES

Eslam Selim in Compiler Development
Мне нужен кто-то, чтобы решить это, пожалуйста!
Я проверил YouTube, но я не понял этого
источник

ES

Eslam Selim in Compiler Development
G3 is LL (1) or not?
источник

M

MaxGraey in Compiler Development
Eslam Selim
Мне нужен кто-то, чтобы решить это, пожалуйста!
Я проверил YouTube, но я не понял этого
Please keep in mind. We don’t help solve student’s or interview tasks here!
источник

ES

Eslam Selim in Compiler Development
can you even check if my answer is correct?
источник

ES

Eslam Selim in Compiler Development
please
источник