跳轉到內容

KS3 計算機/程式設計

來自華夏公益教科書,開放書籍,開放世界


什麼是程式設計?

[編輯 | 編輯原始碼]

程式設計是指為計算機設計和編寫一組指令(程式)的過程,這些指令必須用計算機可以理解的語言編寫。這可以很簡單,比如讓機器人玩具畫出一個正方形的程式;也可以非常複雜,比如用於預測天氣或生成一組排名搜尋結果的軟體。

程式設計是一個兩步過程

[編輯 | 編輯原始碼]

首先,你需要分析問題或系統並設計解決方案。這個過程將使用邏輯推理、分解、抽象和模式來設計算法以解決問題或模擬系統。其次,你需要在計算機上用特定的程式語言表達這些想法。這被稱為編碼,我們可以將組成程式的指令集稱為“程式碼”。程式設計為學習計算機科學提供了動力——當計算機按你的要求執行操作時,你會有一種巨大的成就感,因為你編寫了使事情發生的必要的一組精確指令。程式設計還提供了測試想法和立即獲得反饋的機會,無論它是否有效。

程式設計概念

[編輯 | 編輯原始碼]

有許多程式設計概念,包括:

程式語言

[編輯 | 編輯原始碼]

計算機硬體只響應二進位制(0 和 1)資料載入到記憶體並被視為程式指令時產生的電子脈衝。作為旁註,這意味著計算機程式是資料,這對某些型別的程式來說是一個重要的概念。然而,僅僅使用二進位制 1 和 0 來編寫程式不是一個現實的選擇,因為它非常耗時且容易出錯。出於這個原因,計算機工程師很快開發了程式語言的概念。

程式語言允許程式設計師使用符號和單詞將程式編寫為一段文字,使人類更容易理解。在執行程式之前,必須將其從文字翻譯成計算機所需的二進位制形式。

以下是用 Python 程式語言編寫的簡單程式示例

print("Hello World");

以及用 C 程式語言編寫的同一程式

#include <stdio.h>

int main() {
    printf("Hello, World!");
    return 0;
}

程式語言型別

[編輯 | 編輯原始碼]

有很多不同的方法可以對程式語言進行分類。包括:

  • 高階語言與低階語言
  • 解釋型與編譯型
  • 支援的程式設計風格(如面向物件、函式式或塊狀)。語言可以支援多種程式設計風格。

高階語言與低階語言

[編輯 | 編輯原始碼]

當硬體設計師建立 CPU 的控制單元時,他們會決定處理器將支援哪些指令集。這些指令將涵蓋諸如算術;控制流(允許程式執行跳轉、迴圈等);以及資料儲存和檢索等領域。根據處理器的硬體功能,其中一些指令可能會被實現以提供複雜的操作,例如針對多媒體進行最佳化。

在低階程式設計中,應用程式程式設計師可以直接訪問在硬體中實現的這些低階命令。但是,程式設計師通常不會用二進位制編寫,而是使用宏組合語言編寫。然後使用匯編工具將程式翻譯成二進位制。以下是一個針對簡單 Z80 處理器的示例程式(所有在 ';' 後的文字都是註釋):

CR      EQU  $0D          ; carriage return
PROUT   EQU  $xxxx        ; character output routine
;
        LD   HL,MSG        ; Point to message
;
PRLOOP  LD   A,(HL)        ; read byte from message
        AND  A             ; set zero flag from byte read
        RET  Z             ; end of text if zero
        CALL PROUT         ; output char
        INC  HL            ; point to next char
        JR   PRLOOP        ; repeat
;
MSG     DB   "Hello, world!",CR,0
;

如你所見,這不是一種非常友好的方式來編寫和維護程式碼。此示例與之前的“Hello World”示例完全相同,這突出了低階彙編程式碼與 Python 和 C 等高階語言之間的區別。

解釋型與編譯型

[編輯 | 編輯原始碼]

所有計算機語言都需要一個翻譯程式(彙編器、編譯器或直譯器)將計算機程式翻譯成可以在計算機硬體上執行的形式,最終這些形式都是二進位制 1 和 0。

編譯器是一個程式,它接受用高階計算機語言編寫的程式,並使用目標計算機的二進位制形式生成相同的程式。目標計算機是程式將執行的位置。

如果程式需要在具有不同硬體的目標機器上執行,那麼通常需要修改編譯器以生成所需的不同的二進位制程式碼。編譯器是複雜的程式,並且存在大量的計算機科學知識。此外,

更多資源

[編輯 | 編輯原始碼]

赤腳計算 - 概念 - 程式設計

華夏公益教科書