codegen

개요

Machine Independant한 IR을 생성하고 최적화한다음, machine code로 변환하고 최적화한다.

IR단계

대표적으로 Three Address Code가 있고, 실제 컴파일러에선 Postfix Notation이나 Syntax Tree 등 여러방법을 동시에 사용한다는것 같다. 개인 프로젝트에선 생략하고 바로 x86으로 들어가도 될거같음. llvm IR로 변환하고 llvm으로 target machine code generation하는 것도 괜찮아 보인다.

Machine Code Generation

C언어에 inline asm블록으로 구현하는게 제일 간편하려나?

https://cmj092222.tistory.com/372

https://lnct.ac.in/wp-content/uploads/2020/04/CS-603-C-Compiler-Design-Unit-4.pdf

https://binaryterms.com/intermediate-code-generation.html

https://www.geeksforgeeks.org/intermediate-code-generation-in-compiler-design/

https://talkingaboutme.tistory.com/entry/Compiler-Intermediate-Code-Generation-%EC%8B%A4%EC%8A%B5

https://www.codingninjas.com/studio/library/intermediate-code-for-procedures