added lots of 'compiler structure' sources (not curated at all yet)
This commit is contained in:
parent
ad4802dd95
commit
edb9611154
|
@ -19,12 +19,33 @@ motivation / goals / what questions are we trying to answer:
|
||||||
|
|
||||||
ok what do we want to cover
|
ok what do we want to cover
|
||||||
- classical compiler structure (lexer -> parser -> codegen)
|
- classical compiler structure (lexer -> parser -> codegen)
|
||||||
|
|
||||||
|
| Title | Page |
|
||||||
|
|------------------------------|------|
|
||||||
|
| Phases of a Compiler | https://www.geeksforgeeks.org/phases-of-a-compiler/ |
|
||||||
|
| Compiler Architecture | https://cs.lmu.edu/~ray/notes/compilerarchitecture/ |
|
||||||
|
| Compiler Design | https://www.tutorialspoint.com/compiler_design/compiler_design_phases_of_compiler.htm |
|
||||||
|
| Structure of a Compiler | https://www.csd.uwo.ca/~mmorenom/CS447/Lectures/Introduction.html/node10.html |
|
||||||
|
| The Structure of a Compiler | https://www.brainkart.com/article/The-Structure-of-a-Compiler_8121/ |
|
||||||
|
| Wikipedia: Compiler | https://en.wikipedia.org/wiki/Compiler |
|
||||||
|
| Compiler Phases | https://www.javatpoint.com/compiler-phases |
|
||||||
|
| The Structure of a Compiler | https://pages.cs.wisc.edu/~fischer/cs536.s08/lectures/Lecture04.4up.pdf |
|
||||||
|
| Phases of a Compiler | https://www.guru99.com/compiler-design-phases-of-compiler.html |
|
||||||
|
| Writing a C Compiler (Pt. 1) | https://norasandler.com/2017/11/29/Write-a-Compiler.html |
|
||||||
|
| V: Structure of a Compiler | https://www.youtube.com/watch?v=RH02jcUiPI0 |
|
||||||
|
| V: Phases of a Compiler | https://www.youtube.com/watch?v=jE7f3sGLGVk |
|
||||||
|
| V: Compiler Design | https://www.youtube.com/watch?v=OZSGjRSHYUk |
|
||||||
|
| V: Different Phases of Comp | https://www.youtube.com/watch?v=TApMNhQPaCM |
|
||||||
|
| V: Phases of Compiler | https://www.youtube.com/watch?v=r2BRNodqbgI |
|
||||||
|
| V: Parser and Lexer (Pt. 1) | https://www.youtube.com/watch?v=eF9qWbuQLuw |
|
||||||
|
|
||||||
- semantic analysis / type checking
|
- semantic analysis / type checking
|
||||||
- modern compiler structures (IR / SSA, optimization)
|
- modern compiler structures (IR / SSA, optimization)
|
||||||
- interpreters vs. JITs vs. AOTs vs. "transpilers"
|
- interpreters vs. JITs vs. AOTs vs. "transpilers"
|
||||||
- executables and linkers
|
- executables and linkers
|
||||||
- regular expressions?
|
- regular expressions?
|
||||||
- regular languages / grammars / language structure / automata
|
- regular languages / grammars / language structure / automata
|
||||||
|
- terminology?
|
||||||
|
|
||||||
the c compilation process
|
the c compilation process
|
||||||
- translation units
|
- translation units
|
||||||
|
@ -59,15 +80,35 @@ experts / consultants:
|
||||||
|
|
||||||
## Link dump
|
## Link dump
|
||||||
|
|
||||||
|
### Books
|
||||||
|
|
||||||
|
- Engineering a Compiler:
|
||||||
|
[Well liked]
|
||||||
|
http://www.r-5.org/files/books/computers/compilers/writing/Keith_Cooper_Linda_Torczon-Engineering_a_Compiler-EN.pdf
|
||||||
|
- Compiler Design in C:
|
||||||
|
[May have a full implementation inside]
|
||||||
|
https://holub.com/goodies/compiler/compilerDesignInC.pdf
|
||||||
|
- Dragon Book:
|
||||||
|
[Potentially outdated -- mixed reviews]
|
||||||
|
http://ce.sharif.edu/courses/94-95/1/ce414-2/resources/root/Text%20Books/Compiler%20Design/Alfred%20V.%20Aho,%20Monica%20S.%20Lam,%20Ravi%20Sethi,%20Jeffrey%20D.%20Ullman-Compilers%20-%20Principles,%20Techniques,%20and%20Tools-Pearson_Addison%20Wesley%20(2006).pdf
|
||||||
|
|
||||||
|
### Webpages
|
||||||
|
|
||||||
- lua grammar: http://lua-users.org/wiki/LuaGrammar
|
- lua grammar: http://lua-users.org/wiki/LuaGrammar
|
||||||
- pascal railroad diagrams: https://www.cs.utexas.edu/users/novak/grammar.html
|
- pascal railroad diagrams: https://www.cs.utexas.edu/users/novak/grammar.html
|
||||||
- tons of links: https://github.com/aalhour/awesome-compilers
|
- tons of links: https://github.com/aalhour/awesome-compilers
|
||||||
- dragon book: http://ce.sharif.edu/courses/94-95/1/ce414-2/resources/root/Text%20Books/Compiler%20Design/Alfred%20V.%20Aho,%20Monica%20S.%20Lam,%20Ravi%20Sethi,%20Jeffrey%20D.%20Ullman-Compilers%20-%20Principles,%20Techniques,%20and%20Tools-Pearson_Addison%20Wesley%20(2006).pdf
|
|
||||||
- expression parsing examples:
|
- expression parsing examples:
|
||||||
- pratt parsing and recursive descent: https://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/
|
- pratt parsing and recursive descent: https://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/
|
||||||
- dunno, not recursive descent: https://www.cs.rochester.edu/u/nelson/courses/csc_173/grammars/parsing.html
|
- dunno, not recursive descent: https://www.cs.rochester.edu/u/nelson/courses/csc_173/grammars/parsing.html
|
||||||
- gary bernhardt's compiler from scratch: https://www.destroyallsoftware.com/screencasts/catalog/a-compiler-from-scratch
|
- gary bernhardt's compiler from scratch: https://www.destroyallsoftware.com/screencasts/catalog/a-compiler-from-scratch
|
||||||
- lambda calculus interpreter: https://justine.lol/lambda/
|
- lambda calculus interpreter: https://justine.lol/lambda/
|
||||||
|
- chibicc (full, readable C compiler): https://github.com/rui314/chibicc
|
||||||
|
- A Compiler Writing Journey (has many pages/topics): https://github.com/DoctorWkt/acwj
|
||||||
|
|
||||||
|
#### From NeGate
|
||||||
|
- Near-Optimal Instruction Selection on DAGs: https://llvm.org/pubs/2008-CGO-DagISel.pdf
|
||||||
|
- The Design and Implementation of Gnu Compiler Generation Framework: https://www.cse.iitb.ac.in/~uday/courses/cs715-10/cs715-gcc-intro-handout.pdf
|
||||||
|
- Lecture Notes on Static Single Assignment Form: https://www.cs.cmu.edu/~rjsimmon/15411-f15/lec/10-ssa.pdf
|
||||||
|
- Simple and Efficient Construction of Static Single Assignment Form: https://pp.info.uni-karlsruhe.de/uploads/publikationen/braun13cc.pdf
|
||||||
|
- LLVM Greedy Register Allocator – Improving Region Split Decisions: https://llvm.org/devmtg/2018-04/slides/Yatsina-LLVM%20Greedy%20Register%20Allocator.pdf
|
||||||
|
- NULLSTONE Optimization Categories: ttp://www.nullstone.com/htmls/category.htm
|
Loading…
Reference in New Issue