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。
編譯器是一個程式,它接受用高階計算機語言編寫的程式,並使用目標計算機的二進位制形式生成相同的程式。目標計算機是程式將執行的位置。
如果程式需要在具有不同硬體的目標機器上執行,那麼通常需要修改編譯器以生成所需的不同的二進位制程式碼。編譯器是複雜的程式,並且存在大量的計算機科學知識。此外,