什麼是程式語言?
我們要學習的程式語言是C++,因為自1998年起大學先修課程考試就基於C++語言了。之前的考試用的是Pascal語言。C++和Pascal都是高級語言,你或許也聽說過Java、C和FORTRAN等其他高級語言吧。
從「高級語言」這個名字可以推斷,應該同樣存在低級語言,低級語言一般也稱為機器語言或彙編語言。不嚴格地講,計算機只能執行低級語言編寫的程序。正因如此,高級語言編寫的程序需要經過翻譯才能運行。翻譯也要消耗時間,這是高級語言的一個小缺點。
但高級語言的優勢是巨大的。
首先,使用高級語言編程要容易得多,「容易」意味著編程時間更少,代碼更簡短易讀,出錯的可能性更小。
其次,高級語言是可移植的,也就是說程序只需要很小的改動甚至不需要改動就可以在各類機器上運行。而低級語言編寫的程序只能在某一種機器上運行,必須重寫才能支持其他類型的機器。
正因為這些優點,幾乎所有的程序都是用高級語言編寫的,低級語言僅用於一些特殊的應用場合。
有兩種翻譯程序的方式:解釋和編譯。解釋器讀取高級語言程序並執行程序語句。實際上,解釋器採用的是逐行翻譯的方式,每讀一行就執行該行,然後讀取下一行,交替進行。
編譯器讀取高級語言程序,並在執行程序命令之前全部翻譯好。通常,對程序進行編譯是獨立的一步,之後才能執行編譯好的代碼。在這種情況下,高級語言程序稱為原始碼,而翻譯後的程序稱為目標代碼或可執行程序。
比如使用C++編程序時,你可以使用文本編輯器編寫代碼(文本編輯器是一個簡單的字處理器),寫好之後,將它保存在一個名為program.cpp的文件中,其中「program」可以是你起的任意名字,而「.cpp」是約定的C++原始碼文件後綴。
然後,你可以離開文本編輯器並運行編譯器(具體情況取決於你的編程環境)。編譯器讀入原始碼,翻譯之後,會創建一個名為program.o的目標代碼文件,或者名為program.exe的可執行文件。
編譯完成之後,下一步就是執行程序,執行需要某種執行器。執行器負責加載程序(把程序從磁碟複製到內存)並讓計算機啟動執行程序。
這個過程可能看起來很複雜,但不必擔心,大多數編程環境(有時也稱作開發環境)已經將這些步驟自動化了。一般而言,你需要做的就是編寫代碼,然後敲一個命令就能編譯和運行程序。
另一方面,理解這個過程背後的步驟是有意義的,出錯的時候你能更好地找出問題所在。
什麼是程序
程序是說明如何執行一個計算的一組指令序列。計算既可以是數學運算(如求解方程組或者找出多項式的根),也可以是符號運算(如搜索和替換文檔中的文本,甚至是編譯一個程序)。
不同程式語言中的指令(或者說命令、語句)看起來是不同的,但每種語言都有下面幾個基本功能:
輸入:從鍵盤、文件或其他設備獲取數據。
輸出:在屏幕上顯示數據,將數據發送給文件或其他設備。
數學運算:執行基本的數學操作,比如加法和乘法。
測試:檢查指定條件並執行相應的語句序列。
重複:重複執行某些動作,但每次執行多少有些變化。
其實就這麼多東西。你用過的任何程序,不管多麼複雜,都是由上面這些基本功能組合而成的。所以,我們也可以說,編程是將複雜的任務逐步分解為越來越小的子任務,直到問題解決。