源程式碼 VS 彙編程式碼 VS 目標程式碼 VS 位元組碼 VS 機器碼
1、源程式碼(source code)
源程式碼就是平時我們開發的程式碼;比如C、Java、Python、Shell…等
public class HelloWorld { public static void main(String []args) { System.out.println("Hello World"); } }
2、彙編程式碼(Assembly code)
彙編語言也是人看的懂的語言,也是源碼
#hello.s .data # 數據段聲明 msg : .string "Hello, world!\\n" # 要輸出的字元串 len = . - msg # 字串長度 .text # 程式碼段聲明 .global _start # 指定入口函數 _start: # 在螢幕上顯示一個字元串 movl $len, %edx # 參數三:字元串長度 movl $msg, %ecx # 參數二:要顯示的字元串 movl $1, %ebx # 參數一:文件描述符(stdout) movl $4, %eax # 系統調用號(sys_write) int $0x80 # 調用內核功能 # 退出程式 movl $0,%ebx # 參數一:退出程式碼 movl $1,%eax # 系統調用號(sys_exit) int $0x80 # 調用內核功能
3、目標程式碼(object code)
目標程式碼是由編譯器或其他轉換器生成的程式碼,包括機器碼、位元組碼等
4、位元組碼(Bytecode)
位元組碼是由編譯器生成的中間語言,生成中間語言後由運行時環境解釋或即時編譯。它通常不是人類可讀的語言,也不代表在任何現有CPU硬體上直接執行的實際機器語言。



5、可執行文件(Excuteable file)
鏈接過程的產物。它們是可以由CPU直接執行的機器碼。
6、庫文件(Library file)
可能很多地方要用到這個,生成庫文件,方便多個地方使用。