程式語言
初寫:2004.01.21, 更新日期:2021.01.12
 
作者:曾聖超老師
 
  程式語言:
電腦程式語言的最大功用,就是讓人可以命令電腦做事,
而且一字不漏,非常精準。

簡單來說,程式語言就是讓人與電腦溝通的語言
對於電腦來說,電腦只認得 0 與 1 的數位訊號(機器碼)。

然而要人類來撰寫這種電子訊號碼,不但困難而且辛苦。
所以,在軟體發展與使用的過程中,
程式工程師逐漸將撰寫程式的低階數位碼訊號,轉變為較容易 理解的高階程式語法,
演繹誕生了低階語言和高階語言。

在撰寫上,高階的語言就好像在撰寫數學式,
例如:x = 1+7,則結果 8 就會存在變數 x 中。

大部分的高階語言會經過編譯器(Compiler) 直譯器(Interpreter)的轉換,
(這是不同過程的轉換執行,有興趣的同學可去查詢看這兩種過程的差異)
才能產生可以執行的檔案,就是一般所說的執行檔;或才看得到執行的結果。
而低階語言則常以指令或命令的形式來操作或控制電腦。

儘管如此,要讓電腦能夠「理解」人 類溝通的「自然語言」,
仍舊相當困難,也是資訊界亟待想突破的目標。
 
  低階語言(Low Level Language):
  • 組合語言(Assembly Language)

    特點:
    • 直接控制硬體。
    • 撰寫瑣碎,幾乎對應著機器碼作處理。
    • 不同硬體所寫的程式,很難移植到另一平台。

    以8088/8086來說,其內部有AX、BX、CX、DX暫存器
    運算 1 + 7 =
    MOV    AX , 1      ;將1存入A暫存器
    MOV    BX , 7      ;將7存入B暫存器
    ADD     AX , BX    ;將AX+BX相加後,結果存入A暫存器( ADD  X,  Y     ; X+Y→X)

    列印Hello到螢幕上:
    MOV AH,09      ; 把 09h 放到 AH
    MOV DX,010C   ; 把 10Ch 放到 DX
    INT 21            ; 呼叫中斷 21
    MOV AX,4C00   ; 把 4C00h 放到 AX
    INT 21            ; 呼叫中斷 21
    DB "Hello$"       ; 要顯示的字串內容


  • 機器語言:
    運算 1 + 7 =
    MOV    AX , 1      ;=>10001011,00000000,00000001
    MOV    BX , 7      ;=>10001011,00011110,00000111
    ADD     AX , BX   ;=>00000011,00000000,00011110

    轉成機器碼為:
    100010110000000000000001100010110001111000000111000000110000000000011110

    優點:
    • 電腦直接認識的語言。
    • 速度最快,效率最高!
    • 不用經過編譯可執行。
    缺點:
    • 難撰寫。
    • 不同平台或架構的電腦,不能執行。
    • 需深入瞭解硬體者才能撰寫程式。


參考資料: