簡單講,編譯器就是將“一種語言(通常為高級語言)”翻譯為“另一種語言(通常為低級語言)”的程序。一個(gè)現(xiàn)代編譯器的主要工作流程:源代碼 (source code) → 預(yù)處理器 (preprocessor) → 編譯器 (compiler) → 目標(biāo)代碼 (object code) → 鏈接器 (Linker) → 可執(zhí)行程序 (executables) 高級計(jì)算機(jī)語言便于人編寫,閱讀交流,維護(hù)。機(jī)器語言是計(jì)算機(jī)能直接解讀、運(yùn)行的。編譯器將匯編或高級計(jì)算機(jī)語言源程序(Source program)作為輸入,翻譯成目標(biāo)語言(Target language)機(jī)器代碼的等價(jià)程序。源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標(biāo)則是機(jī)器語言的目標(biāo)代碼(Object code),有時(shí)也稱作機(jī)器代碼(Machine code)。 對于C#、VB等高級語言而言,此時(shí)編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的字節(jié)碼(ByteCode)。最后運(yùn)行的時(shí)候通過通用語言運(yùn)行庫的轉(zhuǎn)換,編程最終可以被CPU直接計(jì)算的機(jī)器碼(NativeCode)。