萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> C++與其他編程語言的關系

C++與其他編程語言的關系

  讀者可能很熟悉編程和編程語言的基本概念,下面從普遍的意義上簡要描述一下本書將用到的一些術語,並闡述C++與其他編程語言的關系。

  無論使用哪種編程語言,編寫出來的程序都是由各個指令構成的。這些指令就稱為源代碼,存儲在磁盤的源文件中。目前有許多編程語言,每一種語言都有其優缺點,都有其吹捧者和批評者。除了C++之外,讀者一定還聽說過BASIC、COBOL、FORTRAN、PASCAL和C等編程語言。

  例如,FORTRAN語言就有將近40年的歷史了,目前仍廣泛應用於科學和工程計算中,但C++和其他語言也逐漸進入這些領域。COBOL語言專門用於商務數據處理應用程序,它的歷史幾乎與FORTRAN語言一樣長。目前幾乎不用COBOL編寫新代碼,而是多年前編寫的大量代碼仍在使用。C++也逐漸成為許多商務數據處理程序的可選語言。

  C是C++的前身,因為這兩種語言有許多共同的語法和功能。實際上,C編程語言是C++的一個子集。但是,C++在發展過程中進行了許多擴展和改進,使之成為一種成熟的語言,而且,C++比功能更強大,用途更廣泛。

  1.1.1 解釋性的程序和編譯性的程序的執行過程

  編程語言的目的是,與計算機可以執行的程序相比,能夠更簡單地描述希望計算機執行的動作。計算機只能執行包含機器指令(也稱為機器代碼)的程序,不能直接執行我們編寫的程序。用前面提到的語言編寫的程序基本上有兩種執行方式,在大多數情況下,一種語言會選擇其中一種執行方式。例如,用BASIC語言編寫的程序通常是解釋性的,也就是說,另一個稱為解釋器的程序會檢查BASIC源代碼,確定該程序要做什麼,再讓計算機完成這些動作。見圖1-1。

C++與其他編程語言的關系 三聯

  圖 1-1

  而C++是一種編譯語言。在執行C++程序之前,必須用另一個程序(即編譯器)把它轉換為機器語言。編譯器會檢查C++程序,並生成機器指令,以執行源代碼指定的動作。當然,解釋和編譯都不像這裡描述的那樣簡單,但其工作原理就是這樣。

  使用解釋性語言,執行過程是間接的,也就是說,每次執行程序時,都需要確定源代碼的意圖。因此,這種語言比編譯語言的對應程序的執行速度慢得多,有時要慢100倍。任何一種語言要麼是解釋性的,要麼是編譯性的,這通常由該語言的設計和用途來決定。

  這個規則的一個例外是Java,它是一種相當新的語言,它具有C++的許多特性。由於Java主要用於在不同計算機之間移植以及用在Internet上,所以它基本上是一種解釋性的語言。盡管如此,還有一種just-in-time編譯器可以在執行過程中,為Java源代碼生成對應的機器碼,從而大大提高了執行速度。

  1.1.2 庫

  每次編寫程序時,如果總是要從頭開始編寫,就相當煩瑣。在許多程序中,常常需要某種相同的功能,例如從鍵盤上輸入數據,或在屏幕上顯示信息。為了解決這個問題,編程語言提供了大量預先編寫好的代碼,以執行標准的輸入輸出操作,這樣就不必重新編寫這些代碼了。

  可用於任意程序的標准代碼都保存在一個庫中。編程語言附帶的庫跟語言本身一樣重要,因為庫的質量和使用范圍對完成某一編程任務所需的時間有非常大的影響

copyright © 萬盛學電腦網 all rights reserved