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
- 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
- NULLSTONE Optimization Categories: ttp://www.nullstone.com/htmls/category.htm
## Articles that we need to write
- Codegen (needs more details)
- Debug info