Java 程式設計(二) :第一章 認識 Java 與程式開發 下一頁 |
第一章 認識 Java 與程式開發 1-1 何謂程式語言?
1-1-1 編寫劇本的工具 何謂『程式』(Program)?打個比方,就是程式設計師(Programmer)扮演著『編劇者』的角色,製作了一套『劇本』,讓電腦依照劇本內容演出,如果將『程式』改稱為『演出表』,也許會更貼切。 我們需要一套規則來製作『劇本』,設計師利用此規則製作劇本;電腦也按照相同的規則執行劇本內容,如此一來,電腦與設計師之間的期望值才不至於發生落差。如果將製作劇本的規格工具化,任何人利用該工具製作劇本,所製作出來的劇本大多數『電腦』也都能明瞭其意思,此工具即是『程式語言』(Program language)。另外,利用程式語言編寫劇本,必須符合該語言的『文法』(grammar),『文法』即是程式的規則,如圖 1-1 所示。 圖 1-1 程式語言與程式 由此可見,程式語言就如同『英文』一樣,我們利用正確的『單字』(如,關鍵字),與正確的文法(如,程式規則),將若干個單字組合成一個『句字』(如,敘述句)。也依照文法規範,將若干個句字組合成一篇文章(如,程式)。只要都合乎語言規則,任何人都可以依照文法規則閱讀該篇文章。同理可證,只要利用標準語言規則所編寫的程式,電腦應該都能執行才是。 到底電腦是一部機械裝置,它的處理能力是由人們所編寫軟體所規劃著。到目前為止,電腦還未具備思考及哲學推斷能力,只能依照程式軟體的步驟進行著。也就說,它僅能依照『劇本』演出,自己並無法判斷劇本的對錯;假如劇本有疏忽或不完整的地方,導致『演出』亂無章法或不能滿足預先所期望的結果,這完全不可歸咎於電腦,而是編寫『劇本』的軟體工程師的疏忽。 既然電腦是一部機器,沒有理解『人』自然語言的能力,也無法讀取一般文字(如中文、英文)所編寫的劇本;吾人並不能直接指揮電腦從事某些工作,必須透過某一種工具編寫劇本才行。另一方面,真實環境裡存在著多種表演型態(如歌仔戲、布袋戲、西洋歌劇、現代舞...等),每一種演出都有其特殊的地方,也需要其專屬的工具來編寫劇本。程式設計也如同此道理,需要許多專屬工具來製作各式各樣的劇本。隨著時代變遷與科技的進步,程式語言也不斷的演進並滿足時勢所需,如目前常見的 C、Java、Fortran、VB 等等。每種程式語言都有其專門屬性,及特殊運用領域,無法直接比較之間的優劣點。雖然各種程式語言的運用領域不同,但編寫程式的技巧幾乎是相同的;也就是說,雖然有那麼多程式語言,利用他們將真實環境程式化的技巧及邏輯思維大致上是一樣的。 1-1-2 高階語言與機械語言 為了滿足各種環境需求,所以需要發展出許多『程式語言』來應對,這種想法,完全是從『人』的立場思考,純粹是方便『人』編寫程式,對『電腦』(演出者)來說,根本不是這麼一回事。因為到目前為止,電腦大多是由各種數位 IC 組成的機械,僅能辨識『0』與『1』,更清楚的說,電腦只能了解利用 0 與 1 的『機械語言』所編寫的程式,不管是早期的Pascal、Fortran 到現在還有不少愛用者的C、VB,以及本書介紹的Java,如果沒有經過適當的轉換,電腦都看不懂。只是因為要人們利用機械語言編寫程式,非一般人所能及,所以需要使用C、Java…這些比較靠近人類自然語言的程式語言編寫程式,然後利用稱之為『編譯器』(Compiler)的專屬軟體,將其翻譯成電腦所認識的『機械語言』,如圖 1-2 所示。
圖 1-2 程式語言的編譯器 我們將『人』所使用的語言工具,稱之為『高階語言』,所編寫出來程式檔案稱為『原始檔』;電腦所認識的語言稱為『低階語言』或『機械語言』,其所構成的檔案稱為『目的檔』或『機械碼』;而將原始檔轉換成目的檔的工具稱為『編譯器』。 不同系列的『中央處理機』(CPU)都有各自的『機械語言』,之間是很難相容的;譬如 Motorola 68000 系列與 Intel Pentium 系列之間的機械碼,則完全不能相容。也就是說,同樣語言編寫出來的程式,利用 Pentium 主機編譯後得到的機械碼,無法移植到 Alpha 主機上執行,因為兩者之間的 CPU 型態並不相同;即使是相同 CPU 型態的主機,若使用不同的作業系統,其機械碼不一定可以相容。如果要機械碼相容的話,不但必須使用相同系列的CPU(如 Pentium 系列),也要採用相同系列的作業系統才可以(如 Windows 系列)。由此可見,機械語言對系統的相依性非常高,同樣的程式語言,在不同的主機電腦上,都有各自的『編譯器』。 |
翻轉工作室:粘添壽
Java 程式設計(二) 含物件導向
翻轉電子書系列:
|