PLComp
Open in Telegram
Π―Π·ΡΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ: Π²ΠΎΠΏΡΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π΄ΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ²ΡΠΎΡΡ: @vekazanov @igorjirkov @true_grue @clayrat @eupp7 @alexanius @AntonTrunov @GabrielFallen @graetestofnoldor
Show moreThe country is not specifiedThe category is not specified
485
Subscribers
No data24 hours
-17 days
+530 days
Posts Archive
485
ΠΠΏΠ΅ΡΠ°ΡΠ»ΡΡΡΠ°Ρ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΎΡ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΎ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ²: https://github.com/MattPD/cpplinks/blob/master/compilers.correctness.md
ΠΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Ρ: https://gist.github.com/MattPD/00573ee14bf85ccac6bed3c0678ddbef
ΠΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌ Π² ΡΠ΅Π»ΠΎΠΌ: https://github.com/MattPD/cpplinks/blob/master/compilers.md
485
ΠΠ΅Π±ΠΎΠ»ΡΡΠ°Ρ Π·Π°ΠΌΠ΅ΡΠΊΠ° Π½Π° ΡΠ΅ΠΌΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΊΠ°Π½ΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Ρ
. Π’Π΅ΠΌΠ° Π·Π°ΡΡΠΎΠ½ΡΡΠ° ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠ½ΠΎ, Π½ΠΎ Π΄Π°ΠΆΠ΅ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅, Π΄ΡΠΌΠ°Ρ, Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡΠΈΠΊΠΎΠ².
Canonicalization
https://sunfishcode.github.io/blog/2018/10/22/Canonicalization.html
485
ΠΠ²Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΎΠ± ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ
ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ
Π½Π° Datalog.
DOOP
https://www.youtube.com/watch?v=FQRLB2xJC50
SoufflΓ©
https://www.youtube.com/watch?v=Qp3zfM-JSx8
#analysis #datalog
485
Π ΡΠ°ΠΌΠΊΠ°Ρ
PLDI Alex Aiken (ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΠΎ ΠΊΡΡΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ) ΡΠ°ΡΡΠΊΠ°Π·Π°Π» ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ TASO -- ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠ½ΡΠ΅Π· Π³ΡΠ°ΡΠΎΠ²ΡΡ
ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠΈΡ
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π»Ρ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΠ΅Π²ΡΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ Π²ΡΠ΅ Π³ΡΠ°ΡΡ-ΡΠ°Π±Π»ΠΎΠ½Ρ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΠ΅Π²ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΠΌΠ΅ΠΆΠ΄Ρ Π³ΡΠ°ΡΠ°ΠΌΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Z3, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΠΎΡΠΊΠ°ΡΠ° ΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π ΡΠ΅Π»ΠΎΠΌ, ΡΠ°ΡΡΠΊΠ°Π· ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΡΡΡ ΡΡΠ°ΡΡΡ:
TASO: Optimizing Deep Learning Computation with Automatic Generation of Graph Substitutions
https://cs.stanford.edu/~padon/taso-sosp19.pdf
#synthesis #smt
485
ΠΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ "ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΎΠ½ΠΎΠ²" Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΡΠ½ΠΎΠ²Π°Π½ Π½Π° Π½Π°ΡΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π²Π΅Π½ΡΡΠ²Π°ΠΌΠΈ ΠΈ Π·Π°Π±ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Programmerβs Apprentice. Π£ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ΅ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ PDG.
Semantic Code Search via Equational Reasoning
https://dl.acm.org/doi/pdf/10.1145/3385412.3386001
#analysis
485
Unsupervised Translation of Programming Languages
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»ΡΠ±ΠΎΠΏΡΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ Π½Π° ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ°Π½ΡΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΎΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ· Facebook AI Research.
ΠΡΡΠ΅ΠΌ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½Π° ΠΊΠΎΡΠΏΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΠ· Github, ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡ ΠΊΠΎΠ΄ ΡΠ·ΡΠΊΠΎΠ² C++, Java, Python.
ΠΠ²ΡΠΎΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΈΡ
ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠ΅Π²ΠΎΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π΅
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ». ΠΠ· ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ, ΠΏΡΡΠΌΠΎΠΉ ΡΠΈΡΠ°ΡΠΎΠΉ ΠΈΠ· ΡΡΠ°ΡΡΠΈ:
β’ We introduce a new approach to translate functions from a programming language to another, that is purely based on monolingual source code. β’ We show that TransCoder successfully manages to grasp complex patterns specific to each language, and to translate them to other languages. β’ We show that a fully unsupervised method can outperform commercial systems that leverage rule-based methods and advanced programming knowledge. β’ We build and release a validation and a test set composed of 852 parallel functions in 3 languages, along with unit tests to evaluate the correctness of generated translations. β’ We will make our code and pretrained models publicly available.Π Π²ΠΈΠ΄Π΅ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Paper: https://arxiv.org/pdf/2006.03511 Video: https://www.youtube.com/watch?v=xTzFJIknh7E&app=desktop #ml #analysis #transpilation
485
ΠΠ²ΡΠΎΡΡ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ Π²Π΅ΡΡ
Π½ΡΡ ΠΈ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΠ½Π΄Π΅ΡΡΠ΅Π½Π° (APA) ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΡΠ²ΠΎΠΈ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ APA.
The Fine-Grained Complexity of Andersenβs Pointer Analysis
https://arxiv.org/pdf/2006.01491.pdf
#analysis
485
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΠ‘-Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π³ΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΡΠ±ΠΎΠΏΡΡΠ½ΠΎ, ΡΡΠΎ Π°Π²ΡΠΎΡΡ Π½Π΅ ΡΡΠ°Π»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΆΠ°ΡΠΈΠ΅.
Mining Input Grammars from Dynamic Control Flow
https://publications.cispa.saarland/3101/1/fse2020-mimid.pdf
#analysis #parsing
485
ΠΡΠ±ΠΎΠΏΡΡΠ½Π°Ρ Π·Π°ΠΌΠ΅ΡΠΊΠ° ΠΎΡ Intel Π½Π° ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅ΡΠ°ΡΠ΅Π»Ρ Π·Π°Π΄Π°Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² LLVM.
Π Π΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ LFENCE Π² ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΌ Π³ΡΠ°ΡΠ΅. ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ LVI-Π°ΡΠ°ΠΊ.
An Optimized Mitigation Approach for Load Value Injection
https://software.intel.com/security-software-guidance/insights/optimized-mitigation-approach-load-value-injection
ILP-ΡΠ΅ΡΠ°ΡΠ΅Π»Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ fence ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ ΠΈ ΡΠ°Π½Π΅Π΅. Π‘ΠΌ., Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π±ΠΎΡΡ Donβt sit on the fence. A static analysis approach to automatic fence insertion:
https://arxiv.org/pdf/1312.1411.pdf
#solver #analysis
485
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ "Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Β«ΠΠ»ΡΠ±ΡΡΡΒ»".
ΠΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π² ΡΠ΅Π±Π΅ ΠΎΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π°ΠΆΠ½ΡΡ
ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΡΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ Π²ΠΏΠ΅ΡΠ²ΡΠ΅. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΠΌΠΈ, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π½Π° Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅.
ΠΠ»ΡΠ±ΡΡΡ - ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠΈΡΠΌΠΎΠΉ ΠΠ¦Π‘Π’, Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° (VLIW).
http://www.mcst.ru/elbrus_prog
#vliw
485
ΠΠΎΠΊΠ»Π°Π΄ Improving Compiler Construction Using Formal Methods (Jubi Taneja)
ΠΠ±Π·ΠΎΡ ΡΠ°Π±ΠΎΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΏΠ΅ΡΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ° Souper Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ°Π·Π°Ρ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ).
https://www.youtube.com/watch?v=de8Ak0nY1hA
#smt #superoptimizer
485
Π‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (pattern matching) Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ML. ΠΠΎ ΡΠ΅Ρ
Π½ΠΈΠΊΠ° ΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π²Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π―Π. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅ΠΉΡΠΈΠΉ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² - Π°Π»Π³ΠΎΡΠΈΡΠΌ Rete, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΡΡΡΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Ρ ΡΡΡΡΡΠ°ΠΌΠΈ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Rete: A Fast Algorithm for the Many Pattern/Many Object Pattern Match Problem
485
ΠΡΠ΅ΡΠ΅Π΄Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΡΠ½Ρ-ΠΠ°ΠΊΠΊΠ°Π½ΡΠΎΠ½ΠΈ ΠΏΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΠΊΠ°ΠΌΠ»Π° Π² ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΡΠΉ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½Ρ Π Π°ΡΡΠ°, ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ off-heap ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ:
Towards better systems programming in OCaml with out-of-heap allocation (draft)
https://github.com/gadmm/RFCs/blob/interop/rfcs/interop.md
#ocaml
485
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ Π΄Π»Ρ Π°Π²ΡΠΎΠ½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ°Π½Π΅Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²Π½ΡΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΌ.
A Collaborative Filtering Approach for the Automatic Tuning of Compiler Optimisations
https://arxiv.org/pdf/2005.04092.pdf
#autotuning #machinelearning #compiler #optimization
485
SSA Π² ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅. ΠΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π·Π½Π°Π½ΠΈΠΉ ΠΏΠΎ ΡΠ΅ΠΌΠ΅.
Program Analisys and Transformation Survey and Links
https://github.com/pfalcon/awesome-program-analysis
#analysis #ssa
485
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π΄Π°Π²Π½ΠΎ ΠΈΠ·ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΏΠΎΡΡΠΈ Π΄Π°ΠΆΠ΅ ΡΠΊΡΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ. ΠΠΎ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΠΎΡΠΈΠΈ ΠΊ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ
ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ² ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ»ΠΎΡ
ΠΎ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π½Π΅ΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ "SMIE: Simple Minded Indentation Engine" Π‘ΡΠ΅ΡΠ°Π½ ΠΠΎΠ½ΡΠ΅ ΠΈΠ·Π»Π°Π³Π°Π΅Ρ ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ² ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (operator-precedence grammars), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π² ΠΠΌΠ°ΠΊΡΠ΅.
http://www-labs.iro.umontreal.ca/~monnier/smie.pdf
#parsing #editor #indentation #emacs #smie
485
ΠΡΠ΅Π½Ρ Π΄ΠΎΡ
ΠΎΠ΄ΡΠΈΠ²ΡΠΉ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΡΠ°ΡΠ΅ΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΠΏΠ΅ΡΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° CEGIS. ΠΠ²ΡΠΎΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ»Π΅Π½ΠΈΠ»ΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΡΠ»Ρ ΠΈΠ· ΡΡΠ°ΡΡΠΈ Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ ΡΡΠΎΡΠΎΠ½ΠΈΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π½ΠΎΡΠ°ΡΠΈΠΈ.
Synthesizing Loop-Free Programs with Rust and Z3
https://fitzgeraldnick.com/2020/01/13/synthesizing-loop-free-programs.html
#synthesis #smt
485
Halide β ΡΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ DSL Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ (ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π΅ΠΉΡΠΎΡΠ΅ΡΠΈ). Π ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π΅Π³ΠΎ ΡΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°. ΠΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ, ΠΏΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΠ΅ΡΡ, Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Halide. ΠΡΠ±ΠΎΠΏΡΡΠ½ΠΎ, ΡΡΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π² ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΌ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΠ½ΡΠ΅Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Formal Semantics for the Halide Language
https://www2.eecs.berkeley.edu/Pubs/TechRpts/2020/EECS-2020-40.pdf
#dsl #semantics #synthesis
485
ΠΡΠ±ΠΎΠΏΡΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π· ΡΡΠΈΡΠ΅Π»Ρ (Q learning) Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠ°ΡΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΠ΅Π½Ρ Π²ΠΏΠ΅ΡΠ°ΡΠ»ΡΡΡ.
Learned Garbage Collection
https://arxiv.org/pdf/2004.13301.pdf
#gc #garbagecollection #machinelearning
485
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Rust ΠΈ Haskell Π½Π° ΠΏΠΎΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΡΠ·ΡΠΊΠΎΠ², Ρ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π½Π° Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈ:
https://old.reddit.com/r/haskell/comments/gok70o/simple_haskell_is_best_haskell/frj9hty/
#fp #haskell #rust #compiler #education
