TGViewer
Channel Public Channel
PLComp

PLComp

@plcomp

Языки и компиляторы: вопросы реализации от входного синтаксиса до порождения машинного кода.
Авторы: @vekazanov @igorjirkov @true_grue @clayrat @eupp7 @alexanius @AntonTrunov @GabrielFallen @ligurio
Subscribers
843
Photos
0
Videos
0
Links
102

Showing posts older than #13 · Back to latest

Older Posts 12 shown
Post #12 372
Две недавние статьи с участием Alessandro Warth. A. Warth — разработчик системы oMeta и автор известной работы по адаптации Packrat-парсеров для поддержки левосторонней рекурсии.

Incremental Packrat Parsing (оригинальная идея по использованию Pakrat-таблицы для реализации инкрементального разбора)
https://dl.acm.org/doi/pdf/10.1145/3136014.3136022

Recognising and Generating Terms using Derivatives of Parsing Expression Grammars
Использование производных Бржозовского в PEG-парсере для порождения предложений описываемого языка. Может использоваться в задаче тестирования компилятора (fuzzing). Но особенно интересно расширить эту идею на PEG с иерархическими структурами данных -- и порождать тестовые примеры для них.
https://arxiv.org/pdf/1801.10490.pdf

#parsing
Post #11 573
О вычислительной универсальности PEG-парсеров.
The computational power of Parsing Expression Grammars
https://arxiv.org/pdf/1902.08272.pdf

#parsing
Post #9 360
Основные работы по методу насыщения равенствами (equality saturation)

Denali: A Goal-directed Superoptimizer (в работе описывается применение E-Graphs для задач оптимизации программ)
https://courses.cs.washington.edu/courses/cse501/15sp/papers/joshi.pdf

Equality Saturation: A New Approach to Optimization (вместо E-Graphs используются PEG/E-PEG, поддерживающие управляющие конструкции)
https://www.cs.cornell.edu/~ross/publications/eqsat/

"Доказательство свойств функциональных программ методом насыщения равенствами" (диссертация на русском языке)
https://keldysh.ru/council/1/2017-grechanik/diss.pdf

#optimization #synth
Post #8 357
Работы по практическому применению передовых подходов E-Graphs (дедуктивный синтез программ) и Equality Saturation (решение для проблемы phase ordering).

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

Carpentry Compiler
https://grail.cs.washington.edu/projects/carpentrycompiler/files/CarpentryCompiler.pdf

Synthesizing Structured CAD Models with Equality Saturation and Inverse Transformations
https://jamesrwilcox.com/szalinski.pdf

Для работы с E-Graphs авторами разработана библиотека egg (есть веб-демо).

egg: Easy, Efficient, and Extensible E-graphs
https://arxiv.org/pdf/2004.03082.pdf

https://github.com/mwillsey/egg

#optimization
Post #6 896
Крупнейшая конференция по истории ЯП - 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

A History of Clojure
https://clojure.org/about/history

A History of the Oz Multiparadigm Language
https://www.info.ucl.ac.be/~pvr/hopl20main-p14-p-329dcad--final.pdf

Thriving in a Crowded and Changing World: C++ 2006–2020
https://www.stroustrup.com/hopl20main-p5-p-bfc9cd4--final.pdf

Остальные доклады: https://dl.acm.org/toc/pacmpl/2020/4/HOPL

#conf #history
Post #5 922
Programming Paradigms for Dummies: What Every Programmer Should Know
Ликбез по основным принципам ЯП: классификация, вопросы представления состояния, конкурентности и параллелизма.
https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf
Post #4 491
CBS — система для описания компонентной спецификации ЯП.
В каком-то смысле это аналог LLVM для формальной семантики. Идея в том, чтобы транслировать ЯП в элементарные, строго определенные конструкции, называемые funcons.
https://plancomps.github.io/CBS-beta/

#semantics
Post #3 351
Статьи по современным легковесным методам порождения кода

Destination-Driven Code Generation
https://pdfs.semanticscholar.org/dcb8/8719880e1f76ad71fb1c5aebb118e2ecfe71.pdf

One-pass Code Generation in V8
https://github.com/eatonphil/one-pass-code-generation-in-v8/blob/master/One-pass%20Code%20Generation%20in%20V8.pdf

HotpathVM: An Effective JIT Compiler for Resource-constrained Devices
https://static.usenix.org/events/vee06/full_papers/p144-gal.pdf

#codegen
Post #2 511
Недавние конференции (статьи доступны)

CGO 2020 (порождение кода и оптимизация)
https://cgo-conference.github.io/cgo2020/program/

СС 2020 (построение компиляторов)
https://conf.researchr.org/program/CC-2020/program-CC-2020

PLDI 2020 (проектирование и реализация языков программирования)
https://pldi20.sigplan.org/program/program-pldi-2020

HOPL IV (история языков программирования)
https://hopl4.sigplan.org/track/hopl-4-papers#List-of-Accepted-Papers

#conf
Post #1
Channel created
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →