① 什麼是程序語言
電腦的語言程序設計
在電腦時代的早期,有一個有趣的現象,那就是沒有人知道該如何撰寫電腦程序,也沒有人知道該如何訓練他人撰寫程序。數學家或其他科學家雖然具備解決這方面問題的能力,但是許多專業人員,好比從音樂到文學方面的專業,也同樣具有相當重要的貢獻。今天即使在處理許多先進的問題上,如人類學、哲學、藝術及心理學等觀念,非技術方面的專業人員亦引領著電腦科技的發展方向。
理由很簡單,無論有多少的硬體設備,電腦終究要被人類所使用,人類可能擔任操作者或程序設計人員的角色,不論是多媒體展示會的觀眾,或是受惠於電腦輔助設計教學的學生,在人機界面上,人類的智慧思維,與電子電路、物理及機械方面的知識,具有相同的重要性。
一旦有了程序語言,撰寫程序便顯得相當重要,我們再次強調,「語言」這種說法是非常恰當的,如同詩人、小說家或老師運用語言來寫詩、小說或課本一般,程序設計師利用程序語言來撰寫有用的或娛樂性的電腦程序。究竟現在有多少電腦程序存在呢?答案至少有數百萬個。有數以百計的主程序包含數以千計的副程序,而且有許多標准程序可供用戶修改成符合個別且特殊需求的程序。
在商場上被廣為採用的,是資料庫管理系統程序,或稱DBMS。簡單地說,資料庫是一種事件的搜集,通常這些事件之間有某種程度的關聯,如字典一般,電話簿就是一個資料庫;又如銀行建立的顧客的資料庫,內容詳列顧客的姓名、地址、賬號,以及投資或儲金的偏好,當一種新的存款方式上市,銀行便會列出顧客名單,並寄上簡介信給可能對此新產品有興趣的客戶。
對銀行來說,一種更富挑戰性的資料庫,是所謂的「同步資料庫」,這是一種隨時將數據更新的資料庫,對有提款機的銀行來說,這樣的程序是必須的,因為提款機必須立即進入用戶的賬戶,減掉客戶想要提取的金額,並更新該賬戶的記錄,如此一來,該賬戶便無法以連續提領的方式溢領現金,但這對銀行對客戶服務的方便性,與銀行提供該項服務的成本來說,具有相當大的影響。
不過,若我們以空中交通管制為例,這樣的資料庫可就不足為奇了。在這個例子中,飛機需確認其飛行於各大城市間的位置及其資料庫,是否與實際狀況同步,這是人命關天的事。空中交通管制人員便察覺到,擁有高速、同步更新的資料庫有助於監控工作隨時保持高度警戒。
資料庫僅是眾多有用的電腦程序中的一個,其他被廣為採用的尚包括:文字處理、數值分析、繪圖、圖表或其他數值顯示方式、教育或機械、建築設計,而最令人興奮的新程序種類,則是提供給程序設計的人員本身所使用的,這種新領域稱為電腦輔助軟體工程。
市場分析專家在近期的《電子工程師學會月刊》指出,電腦輔助軟體工程在90年代中期,將有50億美元的市場。簡單地說,電腦輔助軟體工程促進了軟體撰寫過程的自動化。盡管電腦語言的發展,在易於閱讀與撰寫方面已有長足的進步,但軟體的開發仍是相當耗時與昂貴的工作,並且一旦軟體開發完成,還必須經常更新與維護。換句話說,當一家公司購買一個龐大而昂貴的軟體之後,還必須買進該項程序專家的時間,來確保軟體的正常運作。
人們希望電腦輔助軟體工程能夠增進撰寫軟體的效率,使軟體工程師有更多的時間去開發其他程序,或探索他們開發程序的新方法。通常軟體工程師最常遇到的困難是,雖然他們對電腦技術所知甚多,但對其正在撰寫的程序的應用方面,卻沒有特別深入的了解,因此,藉由與程序使用者間的相處,對軟體工程師是否能提供適當的軟體給消費者,必定多有助益。
電腦輔助軟體工程的重要關鍵,是一種稱為物件導向程序設計的電腦語言模式,若沒有相當的程序設計相關知識,很難去解釋物件導向程序設計的意義,不過將其比喻成儲藏著許多不同種類工具的五金行,倒是一個可行的方式。當一個木匠開始一項工作時,他們可能需要錘子、鋸子、電動工具及其他零件材料;同樣的,電腦程序設計師使用物件導向程序設計,便是利用各種物件——即程序中的工具,將他們組成一個所需的程序。