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
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ ΡΠ»ΡΡΠ°Π»ΠΈ Π½ΠΎΠ²ΠΎΡΡΡ ΠΎ Π΄ΡΠ΅Π²Π½Π΅ΠΌ GW-BASIC. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Microsoft Π²ΡΠ»ΠΎΠΆΠΈΠ»Π° ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Π½Π° github: https://devblogs.microsoft.com/commandline/microsoft-open-sources-gw-basic/
Π Π·Π°ΠΌΠ΅ΡΠΊΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΡΠΈΠ³ΡΡΡΠ°Ρ ΡΡΠ°Π·Π°: "Microsoft was able to generate a substantial amount of the code for a port from the sources of a master implementation. (Alas, sorry, weβre unable to open-source the ISA translator.)". Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ΅ΠΊΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π΄Π»Ρ 8088 Π±ΡΠ» ΠΏΠΎΠ»ΡΡΠ΅Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΎΡΡΠ°Π»ΠΈΡΡ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ, ΡΠ°ΠΌ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ, ΡΡΠ΄Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ, ΠΎ 8080.
Π ΡΡΠ°ΡΡΠ΅ ΠΈΠ· ΠΆΡΡΠ½Π°Π»Π° Byte Π·Π° 1982 Π³ΠΎΠ΄ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ΅Ρ
ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ ΠΊΠΎΠ΄ 8-Π±ΠΈΡΠ½ΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² 8080/Z80 Π΄Π»Ρ CP/M Π² 16-Π±ΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄ 8088/8086 Π΄Π»Ρ MS-DOS: https://tech-insider.org/personal-computers/research/acrobat/8206-b.pdf
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π΄ΠΈ ΡΡΠΈΡ
ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠ² XLT86 (8080 -> 8086) ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Digital Research. ΠΡΠΎΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ β Π΄Π΅ΡΠΈΡΠ΅ ΠΡΡΠΈ ΠΠΈΠ»Π΄Π°Π»Π»Π°, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡΡ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. Π ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΠΠΈΠ»Π΄Π°Π»Π» ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ A unified approach to global program optimization (1973): https://dl.acm.org/doi/pdf/10.1145/512927.512945
Π‘ΡΠ°ΡΡΡ ΠΠΈΠ»Π΄Π°Π»Π»Π° Π΄ΠΎ ΡΠΈΡ
ΠΏΠΎΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΈΡΠ»Π΅ ΡΠ°ΠΌΡΡ
ΡΠΈΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ½ΠΎΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅ ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΠ± Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·ΠΆΠ΅ Π±ΡΠ» ΠΎΠΏΠΈΡΠ°Π½ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠ² ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΌΡΡ
ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Ρ
: http://compcert.inria.fr/doc-1.6/html/Kildall.html
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΊ XLT86. Π ΡΡΠ°ΡΡΡΡ, ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΊ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΡ: http://www.s100computers.com/Software%20Folder/Assembler%20Collection/Digital%20Research%20XLT86%20Manual.pdf
ΠΠ· Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ:
1. Π’ΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 5 ΡΠ°Π·.
2. Π Π½Π°ΡΠ°Π»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΠΈ ΡΡΡΠΎΠΈΡΡΡ Π³ΡΠ°Ρ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ "ΠΆΠΈΠ²ΡΡ
" ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈ ΡΠ»Π°Π³ΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
3. Π‘Π°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ "Π²ΡΠ±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄" ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΠΌΠΈ ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ
.
4. Π’ΡΠ°Π½ΡΠ»ΡΡΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π―Π PL/I-80 ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 6 KΠ±Π°ΠΉΡ.
#history #analysis
485
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌΠΈ (ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ) ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ ΡΠΈΠΌΠΏΠΎΠ·ΠΈΡΠΌΠ° ΠΏΠΎ ΠΠΈΡΠΏΡ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ: Π΄ΠΎΠΊΠ»Π°Π΄ ΠΈ ΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΎΠΌΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ (Π½Π°Π±ΠΎΡ eDSL Π½Π° ΡΠ·ΡΠΊΠ΅ Scheme) Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Nanopass. ΠΠΎ Nanopass ΠΊΠ°ΠΊ ΡΠ°Π· Π½Π΅ Ρ
Π²Π°ΡΠ°Π»ΠΎ ΡΠ²Π΅ΠΆΠ΅ΠΉ, Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π°Π²ΡΠΎΡΡΠΊΠΎΠΌ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠΎΠΊΠ»Π°Π΄ The Nanopass Framework as a Nanopass Compiler
Π‘Π»Π°ΠΉΠ΄Ρ: https://www.european-lisp-symposium.org/static/2020/keep-slides-keynote.pdf
ΠΠΈΠ΄Π΅ΠΎ: https://www.youtube.com/watch?v=lqVN1fGNpZw
Π‘Π΅ΠΌΠΈΠ½Π°Ρ Mixing Mutability into the Nanopass Framework
Π‘Π»Π°ΠΉΠ΄Ρ: https://www.european-lisp-symposium.org/static/2020/keep-slides-workshop.pdf
ΠΠΈΠ΄Π΅ΠΎ: https://www.youtube.com/watch?v=wTGlKCfP90A
#langworkbench #dsl #nanopass
485
ΠΠ΅Π΄Π°Π²Π½ΠΎ (27-28 Π°ΠΏΡΠ΅Π»Ρ, 2020) ΡΠΎΡΡΠΎΡΠ»ΡΡ Π΅Π²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΠΉ ΡΠΈΠΌΠΏΠΎΠ·ΠΈΡΠΌ ΠΏΠΎ ΠΠΈΡΠΏΡ.
European Lisp Symposium
https://www.european-lisp-symposium.org/2020/
ΠΠΈΠ΄Π΅ΠΎΠ·Π°ΠΏΠΈΡΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ²: https://www.youtube.com/playlist?list=PLA66mD-6yK8yjlJCI0Ay2f2IvvmB9Ktga
ΠΠΈΠΆΠ΅ ΠΊΡΠ°ΡΠΊΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ 3 Π΄ΠΎΠΊΠ»Π°Π΄Π°Ρ
ΠΏΠΎ ΠΎΠΊΠΎΠ»ΠΎΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ½ΠΎΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅:
Partial Evaluation Based CPS Transformation: An Implementation Case Study
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ° ΠΠΈΡΠΏΠ° pLisp. Π ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ CPS.
Π‘Π»Π°ΠΉΠ΄Ρ: https://www.european-lisp-symposium.org/static/2020/jayaprakash-slides.pdf
Π’Π΅ΠΊΡΡ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π² ΡΠ±ΠΎΡΠ½ΠΈΠΊΠ΅: https://www.european-lisp-symposium.org/static/proceedings/2020.pdf
LLVM Code Generation for Open Dylan
Dylan β ΡΡΠΎ Π΄ΠΈΠ°Π»Π΅ΠΊΡ ΠΠΈΡΠΏΠ° Ρ ΠΠ»Π³ΠΎΠ»-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ. Π Π½Π°ΡΠ°Π»Π΅ 90-Ρ
ΡΡΠΎΡ ΡΠ·ΡΠΊ ΡΠ°Π·Π²ΠΈΠ²Π°Π»ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Apple. Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠ΄Π° Π΄Π»Ρ Dylan Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ LLVM.
Π‘Π»Π°ΠΉΠ΄Ρ: https://www.european-lisp-symposium.org/static/2020/housel-slides.pdf
Π’Π΅ΠΊΡΡ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π² ΡΠ±ΠΎΡΠ½ΠΈΠΊΠ΅: https://www.european-lisp-symposium.org/static/proceedings/2020.pdf
Later Binding: Just in Time Compilation of a Younger Dynamic Programming Language
ΠΡΠ°ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° LuaJIT
ΠΠΈΠ΄Π΅ΠΎ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΡ: https://www.youtube.com/watch?v=FBk5XAEhu2s
Π’Π΅ΠΊΡΡ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π² ΡΠ±ΠΎΡΠ½ΠΈΠΊΠ΅: https://www.european-lisp-symposium.org/static/proceedings/2020.pdf
#conf #jit #llvm #cps #pe
485
ΠΠ° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ self-hosted Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Ρ Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Idris 2.
ΠΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±ΡΠΊΠ΅Π½Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ΅Ρ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Scheme: Chez, Racket ΠΈΠ»ΠΈ Gambit. ΠΠ°ΠΊ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Idris, Π΅ΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
Π±ΡΠΊΠ΅Π½Π΄ΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
IR c Π»ΡΠΌΠ±Π΄Π°ΠΌΠΈ (ΠΎΠ±ΡΡΠ½ΡΠΉ LC, lifted ΡΠΎΡΠΌΠ°, ANF, Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌΠΈ).
https://github.com/idris-lang/Idris2/
Why is Idris 2 so much faster than Idris 1?
https://www.type-driven.org.uk/edwinb/why-is-idris-2-so-much-faster-than-idris-1.html
#fp
485
A Language for Describing Optimization Strategies
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠΌΠΎΠ² Π² Π΄ΡΡ
Π΅ Stratego. Π ΡΡΠ°ΡΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π½Π° Scala, Π΄Π»Ρ GPU ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Π΅ΠΉ.
https://arxiv.org/pdf/2002.02268.pdf
#optimization
485
Π Π°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠΈΠ½ΡΠ΅Π·Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ 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 #bpf
485
ΠΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΡΠ»ΠΊΠ° Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡ Π² ΡΠΏΠΎΡΠ°Ρ
Π½Π° ΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊΠΎΠΉ Π―Π Π²ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
Comparing the Same Project in Rust, Haskell, C++, Python, Scala and OCaml
https://thume.ca/2019/04/29/comparing-compilers-in-rust-haskell-c-and-python/
#compiler #implementation #comparison #education #rust #haskell #cpp #python #scala #ocaml
485
Π Π°Π±ΠΎΡΡ Ian Piumarta, ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° STEPS
Maru
ΠΠΈΠ½ΠΈΠ°ΡΡΡΠ½ΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΠΈΡΠΏ-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ·ΡΠΊ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Π² IA32-ΠΊΠΎΠ΄. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ STEPS.
Open, extensible composition models
https://www.piumarta.com/freeco11/freeco11-piumarta-oecm.pdf
STEPS Toward the Reinvention of Programming, 2012 Final Report
http://www.vpri.org/pdf/tr2012001_steps.pdf
PEG-based transformer provides front-, middleand back-end stages in a simple compiler
http://www.vpri.org/pdf/tr2010003_PEG.pdf
Π¨Π΅Π΄Π΅Π²Ρ ΠΈΠ·ΡΡΠ΅ΡΡΠ²Π° ΠΈ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ².
#lisp #metacompiler
485
Femtolisp β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ° LISP.
https://github.com/JeffBezanson/femtolisp
ΠΠ²ΡΠΎΡ ΡΡΠ°Π» Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Julia. ΠΠ° femtolisp Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π»Π΅ΠΊΡΠ΅Ρ ΠΈ ΠΏΠ°ΡΡΠ΅Ρ Julia.
#lisp #interpreter
485
Π ΡΡΠ°Π΄ΠΈΠΈ call for papers
ΠΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΏΠΎ Π―Π Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ VM
MPLR 2020
ΠΠΎΡΠ±ΡΡ 4-6, 2020
https://mplr2020.cs.manchester.ac.uk/index.php/mplr/call-for-papers
Π‘ΠΈΠΌΠΏΠΎΠ·ΠΈΡΠΌ ΠΏΠΎ Π―Π ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ
APLAS 2020
30 Π½ΠΎΡΠ±ΡΡ 2020
https://conf.researchr.org/home/aplas-2020
#conf
485
Π Retrofitting Parallelism onto OCaml Π°Π²ΡΠΎΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡΡ Multicore Ocaml, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΡ ΠΌΡΡΠΎΡΠ°:
https://arxiv.org/pdf/2004.11663.pdf
#ocaml #gc #garbagecollection #multicore
485
ΠΠ΅ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ PEG-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ°.
Pika parsing: parsing in reverse solves the left recursion and error recovery problems
https://arxiv.org/pdf/2005.06444.pdf
#parsing
485
ΠΠ²Π΅ Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ Ρ ΡΡΠ°ΡΡΠΈΠ΅ΠΌ 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
485
Π Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ PEG-ΠΏΠ°ΡΡΠ΅ΡΠΎΠ².
The computational power of Parsing Expression Grammars
https://arxiv.org/pdf/1902.08272.pdf
#parsing
485
Program Analysis
Π‘Π²Π΅ΠΆΠΈΠΉ (Π²Π΅ΡΠ½Π° 2020) ΠΊΡΡΡ ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠ΅ΠΌ.
https://cmu-program-analysis.github.io/
#analysis
485
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠ°Π²Π΅Π½ΡΡΠ²Π°ΠΌΠΈ (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
485
Π Π°Π±ΠΎΡΡ ΠΏΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΡ
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ² 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
485
ΠΠ²ΡΠΎΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ Emacs Lisp Π½Π° Π±Π°Π·Π΅ libgccjit ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π·Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
Bringing GNU Emacs to Native Code:
https://zenodo.org/record/3736363/files/GCCEMACS_proceeding.pdf?download=1
#lisp
485
ΠΡΡΠΏΠ½Π΅ΠΉΡΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ Π―Π - 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
485
Programming Paradigms for Dummies: What Every Programmer Should Know
ΠΠΈΠΊΠ±Π΅Π· ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ Π―Π: ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, Π²ΠΎΠΏΡΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°.
https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf
