diff --git a/selected/compilers.md b/selected/compilers.md index b961643..a9b77e2 100644 --- a/selected/compilers.md +++ b/selected/compilers.md @@ -20,24 +20,24 @@ motivation / goals / what questions are we trying to answer: ok what do we want to cover - 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 | +|Star| 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 @@ -148,12 +148,22 @@ experts / consultants: - Mention WASM? - The terrors of the real world - Executables, linkers, and debug info + - Also debug info - The C ABI and FFI - - Register allocation -- C is not the only language - - LISP - - Forth - - This could be a whole topic maybe + - Debug info + - Codegen + - Specifically: machine code generation, of reasonable quality + - Note: not necessary for all "compilers" + - Topics: register allocation, instruction selection, instruction scheduling + - Some examples of optimization passes + - There are not a lot of resources for this. Place a public TODO here? +- Appendix: + - Grammar basics (BNF, EBNF) + - Need not go into exhaustive detail on categories of grammars + - C is not the only language + - LISP + - Forth + - This could be a whole topic maybe ## Link dump @@ -188,4 +198,9 @@ experts / consultants: - 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 \ No newline at end of file +- NULLSTONE Optimization Categories: ttp://www.nullstone.com/htmls/category.htm + +## Articles that we need to write + +- Codegen (needs more details) +- Debug info \ No newline at end of file