Resources to consider adding
https://lists.eatonphil.com/compilers-and-interpreters.html
https://www.youtube.com/@jblow888
https://llvm.org/docs/tutorial/
Curation of program analysis resources https://gist.github.com/MattPD/00573ee14bf85ccac6bed3c0678ddbef
http://www.msreverseengineering.com/program-analysis-reading-list/
https://cs.au.dk/~amoeller/spa/ code https://github.com/cs-au-dk/TIP/tree/master/src/tip
https://mitpress.mit.edu/9780262043410/introduction-to-static-analysis/ code https://github.com/sree314/simple-abstract-interpreter
https://link.springer.com/book/10.1007/978-1-84800-017-9
dataflow:
- Kildall's worklist, least fix point https://www.cs.cmu.edu/~emc/15817-s11/reading.html https://pages.cs.wisc.edu/~horwitz/CS704-NOTES/DATAFLOW-AUX/lattice.html https://www.cs.cmu.edu/~aldrich/courses/17-355-17sp/notes/03-dataflow-frameworks.pdf https://www.cs.rice.edu/~keith/EMBED/dom.pdf https://courses.cs.washington.edu/courses/cse401/16wi/sections/section8/dfa.html Two approaches to interprocedural data flow analysis
loops: https://www.cs.cornell.edu/courses/cs4120/2011fa/lectures/lec27-fa11.pdf https://www.cs.princeton.edu/courses/archive/spr03/cs320/notes/loops.pdf https://www.cs.cmu.edu/afs/cs/academic/class/15745-f03/public/lectures/
https://groups.seas.harvard.edu/courses/cs153/2018fa/lectures/Lec17-CFG-dataflow.pdf
https://www.sable.mcgill.ca/~hendren/621/ControlFlowAnalysis_Handouts.pdf
http://venge.net/graydon/talks/CompilerTalk-2019.pdf
https://groups.seas.harvard.edu/courses/cs252/2011sp/
https://nickdesaulniers.github.io/blog/2023/01/27/critical-edge-splitting/ https://github.com/bytecodealliance/cranelift/issues/796 https://news.ycombinator.com/item?id=10495342
semantic analysis https://web.stanford.edu/class/cs143/lectures/lecture09.pdf https://www.cs.rochester.edu/~sree/courses/csc-255-455/spring-2020/schedule.html https://www.cs.cornell.edu/courses/cs4120/2013fa/schedule.html
- more recently https://www.cs.cornell.edu/courses/cs4120/2023sp/
https://cs.brown.edu/courses/cs173/2012/book/Introduction.html https://stanford-cs242.github.io/f19/
https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/get-started/semantic-analysis
https://iucompilercourse.github.io/IU-P423-P523-E313-E513-Fall-2020/ (has videos) https://plfa.github.io/ http://www.cs.cmu.edu/~rwh/pfpl.html http://openclassroom.stanford.edu/MainFolder/courses/Compilers/ (has videos) https://cs.brown.edu/courses/cs173/2012/Videos/ (has videos) https://courses.cs.washington.edu/courses/cse341/19sp/ (has videos) https://www.plai.org/
ASTs https://medium.com/basecs/leveling-up-ones-parsing-game-with-asts-d7a6fc2400ff https://www.cs.cornell.edu/courses/cs4120/2022sp/notes.html?id=ast https://www.cs.mcgill.ca/~cs520/2023/slides/7-ast.pdf
lowering https://luctielen.com/posts/how-to-lower-an-ir/
cs6120 https://carstein.github.io/2020/10/22/ssa-explained.html
abstract binding trees https://siek.blogspot.com/2020/07/type-safety-in-two-easy-lemmas.html https://semantic-domain.blogspot.com/2015/03/abstract-binding-trees.html https://github.com/willcrichton/rabbot
https://ucarion.com/llvm-rust-toy-compiler https://github.com/true-grue/python-dsls https://github.com/true-grue/graph-irs
CFGs https://nicolo.dev/en/blog/role-control-flow-graph-static-analysis/
Section 12.3 PDGs https://pfalcon.github.io/ssabook/latest/book.pdf ægraphs: Acyclic E-graphs for Efficient Optimization in a Production Compiler
https://bernsteinbear.com/blog/whats-in-an-egraph/ https://github.com/egraphs-good/eggcc/blob/main/src/rvsdg/from_cfg.rs
https://thorstenball.com/talks/writing_tucan_nov_2024_homebrew_systems_club.pdf