Update 'selected/compilers.md'

This commit is contained in:
bvisness 2022-05-09 21:34:11 +00:00
parent fe7199683e
commit e7db0faff8
1 changed files with 39 additions and 24 deletions

View File

@ -20,24 +20,24 @@ 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 | |Star| Title | Page |
|------------------------------|------| |----|------------------------------|------|
| Phases of a Compiler | https://www.geeksforgeeks.org/phases-of-a-compiler/ | | | Phases of a Compiler | https://www.geeksforgeeks.org/phases-of-a-compiler/ |
| Compiler Architecture | https://cs.lmu.edu/~ray/notes/compilerarchitecture/ | | | Compiler Architecture | https://cs.lmu.edu/~ray/notes/compilerarchitecture/ |
| Compiler Design | https://www.tutorialspoint.com/compiler_design/compiler_design_phases_of_compiler.htm | | | 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 | | | 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/ | | | The Structure of a Compiler | https://www.brainkart.com/article/The-Structure-of-a-Compiler_8121/ |
| Wikipedia: Compiler | https://en.wikipedia.org/wiki/Compiler | | | Wikipedia: Compiler | https://en.wikipedia.org/wiki/Compiler |
| Compiler Phases | https://www.javatpoint.com/compiler-phases | | | 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 | | | 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 | | | 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 | | | 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: Structure of a Compiler | https://www.youtube.com/watch?v=RH02jcUiPI0 |
| V: Phases of a Compiler | https://www.youtube.com/watch?v=jE7f3sGLGVk | | | V: Phases of a Compiler | https://www.youtube.com/watch?v=jE7f3sGLGVk |
| V: Compiler Design | https://www.youtube.com/watch?v=OZSGjRSHYUk | | | V: Compiler Design | https://www.youtube.com/watch?v=OZSGjRSHYUk |
| V: Different Phases of Comp | https://www.youtube.com/watch?v=TApMNhQPaCM | | | V: Different Phases of Comp | https://www.youtube.com/watch?v=TApMNhQPaCM |
| V: Phases of Compiler | https://www.youtube.com/watch?v=r2BRNodqbgI | | | V: Phases of Compiler | https://www.youtube.com/watch?v=r2BRNodqbgI |
| V: Parser and Lexer (Pt. 1) | https://www.youtube.com/watch?v=eF9qWbuQLuw | | | V: Parser and Lexer (Pt. 1) | https://www.youtube.com/watch?v=eF9qWbuQLuw |
- semantic analysis / type checking - semantic analysis / type checking
@ -148,8 +148,18 @@ experts / consultants:
- Mention WASM? - Mention WASM?
- The terrors of the real world - The terrors of the real world
- Executables, linkers, and debug info - Executables, linkers, and debug info
- Also debug info
- The C ABI and FFI - The C ABI and FFI
- Register allocation - 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 - C is not the only language
- LISP - LISP
- Forth - Forth
@ -189,3 +199,8 @@ experts / consultants:
- Simple and Efficient Construction of Static Single Assignment Form: https://pp.info.uni-karlsruhe.de/uploads/publikationen/braun13cc.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 - 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 - NULLSTONE Optimization Categories: ttp://www.nullstone.com/htmls/category.htm
## Articles that we need to write
- Codegen (needs more details)
- Debug info