처리 과정 Source Program ↓ Lexical Analyzer ... (lexical_analyzer, lexical_analysis) ↓ Tokens ... ([[토큰,token]]) Syntax Analyzer ... (syntactic_analysis) ↓ Tree ... (AST) Intermediate Code Generator ↓ Intermediate Code ... (intermediate_code) // intermediate_representation { https://en.wikipedia.org/wiki/Intermediate_representation } Code Optimizer ... (code_optimization) ↓ Optimized Code Target Code Generator ↓ Object Program ---- rel. [[컴파일러,compiler]] { Sub: just-in-time_compiler (JIT_compiler) [[VG:컴파일러,compiler]] http://www.linfo.org/compiler.html } [[code_generation]] / [[code_generator]] intermediate * target * [[dynamic_compilation]] { [[WpKo:동적_컴파일]] = https://ko.wikipedia.org/wiki/동적_컴파일 WpEn:Dynamic_compilation = https://en.wikipedia.org/wiki/Dynamic_compilation } [[dynamic_recompilation]] { WpKo:동적_재컴파일 = https://ko.wikipedia.org/wiki/동적_재컴파일 WpEn:Dynamic_recompilation = https://en.wikipedia.org/wiki/Dynamic_recompilation } [[just-in-time_compilation]] = JIT_compilation (= dynamic_translation (wp)) { MKLINK [[바이트코드,bytecode]] { Sub: [[Java_bytecode]] { https://ko.wikipedia.org/wiki/자바_바이트코드 https://simple.wikipedia.org/wiki/Java_bytecode https://en.wikipedia.org/wiki/Java_bytecode } MKLINK [[intermediate_representation]] https://simple.wikipedia.org/wiki/Bytecode https://en.wikipedia.org/wiki/Bytecode } WpKo:JIT_컴파일 = https://ko.wikipedia.org/wiki/JIT_컴파일 "JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법" [[WpSimple:Just-in-time_compilation]] = https://simple.wikipedia.org/wiki/Just-in-time_compilation [[WpEn:Just-in-time_compilation]] = https://en.wikipedia.org/wiki/Just-in-time_compilation } ---- Sources 처리과정: 최린 컴구 slide #2 p5