計算機資訊系統/程式開發簡介




程序式程式設計或多或少是不言自明的,它是過程式的,因此它將一步一步地解決問題。這是一種更古老的程式語言型別,現在已被面向物件程式設計所淘汰。然而,這種型別的程式設計非常重要,如果您想了解程式設計的概念以及所有涉及的內容,則應該充分了解它。這個過程在某些情況下也稱為指令式程式設計,意思是自上而下的語言;這就是程式設計函式的工作方式,從一個自上而下的過程順序。這使得這個過程在某種程度上不言自明,因為為了使某些東西工作並傳遞資訊,我們假設它按照這種順序進行。除了逐步解決問題之外,還必須將指令列表傳送到計算機,以便它知道如何處理這些資訊。它依賴於包含需要執行的多個步驟的例程或過程。程序式程式設計由於其簡單性而成為其他型別程式設計的墊腳石。它是一種更古老的程式設計型別,現在已被另一種流行的形式所淘汰,即面向物件程式設計。[1] 面向物件程式設計更關注物件以建立程式,而不是特定的步驟。一個物件,比如一個人,應該有一個名字,或者能夠行走,這在面向物件程式設計中可以看作是一種方法。在該程式設計中擁有方法就像在程序式程式設計中擁有過程一樣。[2] 最流行的面向物件程式語言之一是 Java,[3] 它幾乎在所有地方使用。面向物件程式中的物件包含屬性。如果你玩過 D&D[4],你就會知道你的角色有不同的屬性來定義他們。如果你有一個物件,你可以改變它的屬性,比如大小、形狀和顏色。
面向方面程式設計是一種程式設計形式,它透過允許開發人員以一種能夠滿足新要求的方式修改 OOP 來補充面向物件程式設計 (或 OOP)。它保留了最初在 OOP 中開發的模型,但允許使用新的語法,而無需更改所使用的編譯器或重新配置編輯器。本質上,它是之前開發的 OOP 樣式的補充,並允許應用程式在其生命週期內採用新的特徵,而無需完全改造或重新開發。這種使應用程式能夠適應當前技術趨勢的能力延長了應用程式的有用性和壽命,從而也使使用該應用程式的使用者受益。[5]

自適應軟體開發包括迴圈推測、協作和學習,而不是更傳統的線性規劃、構建和實施方法。首先,使用術語“推測”,因為結果永遠無法完全預測到規劃的程度,因為在沒有任何有組織的方法的情況下漫無目的地遊蕩是浪費時間。使命仍然定義了;它承認使命永遠不可能包含所有可能的結果,並且可能需要改變。其次,術語“協作”表明,根據該模型,管理並不完全關注“管理做事”——即委派指示並確保它們得到遵循,而是關注培養和維護協作環境,這是實現真正增長所必需的。這可能很困難,因為根據該模型,環境通常處於混亂的邊緣,因為專案無法完全結構化,因為那樣就不會出現任何新事物。但是,事情不能搖搖欲墜地進入無政府狀態。最後,重點是開發人員和消費者從錯誤中吸取教訓。這三個階段的週期很短,因此吸取教訓的是小的錯誤,而不是大的錯誤。[6]

以下是程式開發生命週期的六個步驟
1. 分析問題。計算機使用者必須弄清楚問題,然後決定如何解決問題 - 選擇程式。
2. 設計程式。流程圖在 PDLC 的這一步中很重要。這是一個包含程式流程的視覺圖表。此步驟將幫助您分解問題。
3. 編寫程式。這是使用程式語言編寫程式碼行。程式碼稱為列表或原始碼。計算機使用者將執行一個物件程式碼來完成此步驟。
4. 除錯程式。計算機使用者必須除錯。這是查詢計算機上“錯誤”的過程。查詢錯誤很重要,因為這被稱為程式中的錯誤。
5. 正式化解決方案。必須執行該程式以確保沒有語法和邏輯錯誤。語法是語法錯誤,邏輯錯誤是結果錯誤。
6. 文件和維護程式。此步驟是將所有內容收集在一起的最後一步。內部文件涉及此步驟,因為它解釋了更改程式的原因或如何編寫程式。[7]

計算機程式碼是一系列語句,這些語句已由更高級別的語言(通常稱為原始碼)分配了功能。這種語言類似於英語,並已使用稱為編譯器的程式型別轉換為機器語言。由於程式碼用於指示計算機執行各種任務,因此存在許多不同型別的語言和程式。編碼最重要的方面之一是決定計算機將執行哪些作業(建立網頁、編寫遊戲等)。無論選擇什麼,大多數程式碼都使用純文字,因為其相容性。儘管實際內容是按這種方式編寫的,但每個文件都分配了一個唯一的副檔名,指示其型別。可以使用基本的文字處理器或文字編輯器編寫簡單的程式碼。但是,使用軟體應用程式(專門為某種語言的編碼而設計)的效率和有效性要高得多。與用英語編寫的文件一樣,使用文字處理軟體來幫助檢測拼寫錯誤和非標準語法,程式碼編輯器提供可比的工具來確保準確性。程式碼編輯器也稱為整合開發環境 (IDE),這是一種用於格式化的軟體應用程式。使用程式碼編輯器可以減少程式碼中的錯誤數量和閱讀程式碼所花費的時間。使用 IDE 的一個主要缺點是缺乏靈活性。雖然有些 IDE 支援多種程式語言,但相當一部分 IDE 僅針對一種語言。 [8]
流程圖和虛擬碼
[edit | edit source]
在程式開發生命週期的設計過程中,程式設計師(以及非程式設計師)能夠視覺化程式的工作方式非常重要。流程圖和虛擬碼等某些工具用於簡化設計過程,並允許開發人員在實際使用任何程式碼之前檢視程式。一種常見的程式設計工具是流程圖。流程圖可以是手寫的,也可以使用 Visual Logic 或 Flowgorithm 等軟體建立。使用軟體可以幫助您以數字方式儲存您的工作,這可能更可靠。[9] 許多這些軟體程式都使用類似的符號來表示某些操作,例如輸入、輸出、賦值和各種型別的迴圈。例如,菱形表示輸入和輸出,矩形表示過程。流程圖在教育工具中也很有用,因為它們更側重於程式設計的概念,而不是程式語言的語法。另一種程式設計工具是虛擬碼。虛擬碼與程式語言非常相似,只是它使用非語義詞來總結程式的過程。虛擬碼無法編譯或執行,但它確實為程式設計師提供了一個良好的起點。[10] 以下是一個虛擬碼示例
- 如果使用者的年齡大於或等於 18 歲
- 列印“您有投票權”
- 否則 列印“您無權投票”
編譯器
[edit | edit source]
編譯器是一種特殊的程式,它處理用特定程式語言編寫的語句,並將它們轉換為計算機處理器使用的機器語言或“程式碼”。在執行(執行)時,編譯器首先以語法方式逐個解析(或分析)所有語言語句,然後在一個或多個後續階段或“遍”中構建輸出程式碼,確保引用其他語句的語句在最終程式碼中正確引用。編譯器與有時被稱為 3GL(FORTRAN、BASIC、COBOL、C 等)和更高階語言的語言一起工作。[11] 除了單遍和多遍編譯器外,還有即時編譯器、分階段編譯器和源到源編譯器。編譯器前端分析原始碼以構建程式的內部表示,稱為中間表示。編譯器後端包括三個主要階段,例如分析、最佳化和程式碼生成。[12] 由於編譯器將原始碼轉換為目的碼,而目的碼對於每種型別的計算機都是唯一的,因此針對同一語言提供了許多編譯器。例如,有一個用於 PC 的 FORTRAN 編譯器和另一個用於 Apple Macintosh 計算機的編譯器。此外,編譯器行業競爭激烈,因此每種型別的計算機上實際上都有針對每種語言的許多編譯器。十多家公司為 PC 開發和銷售編譯器。[13] 還有一種稱為反編譯器的工具,它將低階語言翻譯成高階語言。[14]
程式開發生命週期 - 除錯和測試、實施和維護
[edit | edit source]控制結構
[edit | edit source]
控制結構是用於顯示程式或模組中如何執行函式、語句和指令的圖表。該圖表準確地顯示了何時執行指令以及如何執行指令。最重要的是,控制結構顯示了指令的順序。[15] 有三種基本型別的控制結構:順序、選擇和重複。選擇特定控制結構取決於您希望程式或模組完成什麼。順序控制結構是最簡單也是最不復雜的控制結構。順序控制結構是一條接一條執行的指令。[16] 該結構可以與遵循食譜進行比較。更復雜的控制結構可能是選擇控制結構,它涉及條件或決策。這意味著該結構可以允許執行不同的指令集,具體取決於條件為真還是假。[17] 最後一個基本控制結構是重複控制結構,有時稱為迭代控制結構。當需要重複一組程式碼時使用此控制結構。程式碼將重複執行,直到達到某個條件。當需要迴圈以達到特定結果時,使用重複控制結構。[18]
測試程式設計
[edit | edit source]
良好的程式設計需要具體化。程式設計非常重要,尤其是在它涉及關於程式的總體逐步方向時。程式設計師必須測試程式設計,以確保它能夠正確執行並且沒有錯誤。程式設計師必須完成此任務的操作稱為桌面檢查。桌面檢查允許程式設計師逐步執行程式設計。本質上,程式設計師逐步執行程式碼行以識別潛在錯誤並檢查邏輯。程式設計師使用跟蹤表來跟蹤任何迴圈計數器。檢查程式設計的目標是避免在程式開發週期中遇到更多錯誤。在開發週期中越早發現錯誤越好。如果直到開發週期的後期才發現錯誤,它可能會延遲專案。因此,程式設計師必須確保在桌面檢查時嚴格注意。桌面檢查的優點包括方便地手動“校對”程式設計師自己的程式碼。程式設計師自己編寫了程式碼,因此他們能夠立即使用熟悉的程式碼是一個優勢。桌面檢查系統的缺點包括潛在的人為錯誤。由於計算機沒有檢查設計程式碼,因此容易出現人為錯誤。[19]
除錯
[edit | edit source]除錯基本上是為了確保程式沒有任何錯誤(錯誤),以便它能夠正常執行而不會出現任何問題。除錯是程式設計師的一項重要工作。除錯的第一步是在您實際除錯程式之前完成;程式需要轉換為機器語言,以便計算機能夠讀取它。它使用語言轉換器進行轉換。除錯的首要目標是消除語法錯誤以及阻止程式執行的任何錯誤。阻止程式執行的錯誤是編譯器錯誤。這些錯誤需要立即消除,否則您將無法測試程式的任何其他部分。[20] 當程式設計師沒有遵循程式語言的正確規則時,就會發生語法錯誤。另一種錯誤是執行時錯誤,它在程式執行時發生,並且在更正所有語法錯誤之後才被注意到。許多執行時錯誤是由於邏輯錯誤造成的,邏輯錯誤是程式邏輯中的錯誤。它可能發生在公式寫錯或使用錯誤的變數名時。[21]

有不同的除錯技術可以使用。一種稱為列印除錯,也稱為 printf 方法,透過觀察列印(或跟蹤)語句的即時或錄製情況來查詢錯誤,以檢視過程的執行流程。此方法起源於 BASIC 程式語言的早期版本。遠端除錯是使用遠端系統或網路查詢錯誤的方法,並使用該不同系統執行程式並收集資訊以查詢程式碼中的錯誤。如果程式已經崩潰,那麼可以透過各種跟蹤技術以及分析程式的記憶體轉儲來使用事後除錯。另一種技術是由愛德華·高斯建立的“柵欄除錯”。基本上,此方法透過連續分割或分段來找到錯誤,直到找到錯誤。類似於此的是“擠壓”技術,它使用故障測試的逐步內聯來隔離問題。[22]
使用除錯軟體提供的工具可以除錯程式。通常,尤其是在高階程式語言中,特定除錯工具已包含在內。擁有特定於語言的除錯工具可以更容易地檢測程式碼中的錯誤,因為它們可以查詢已知錯誤,而不是手動“逐行”檢查程式碼。還需要注意的是,手動修復一個錯誤可能會導致另一個錯誤;這也是特定於語言的除錯工具有用的原因。嵌入式系統也有除錯軟體。[23]
測試/實施與維護
[edit | edit source]
在程式可以投入使用之前,需要做很多事情。其中一項是測試程式。在除錯過程完成後,需要另一位程式設計師測試程式,以檢查程式背景中可能出現的任何額外錯誤。這個人需要執行實際程式使用者將使用並遵循的所有任務。為了確保隱私權,在測試過程中使用測試資料。但是,這仍然與實際資料具有相同的結構和感覺。測試人員還需要檢查可能的輸入錯誤,因為如果在將來沒有檢查,這將導致許多問題。公司通常會實施不同型別的測試。首先進行Alpha測試[24],該測試在公司內部進行,而Beta測試則傳送到不同的州或國家,以確保程式100%可以使用。Alpha測試在Beta測試之前進行。一旦除錯和測試完成,程式現在就在系統中,程式實現和維護階段也已完成。為了防止將來出現錯誤,仍然需要進行程式維護。這對組織來說是最昂貴的,因為程式設計師需要不斷改進和修復程式中的問題。

如前所述,程式在釋出給公眾使用之前會經過廣泛的測試。兩種測試型別稱為Alpha測試和Beta測試。首先,重要的是要知道每個測試的作用。Alpha測試是在“內部”完成的。它是在向Beta測試傳送之前在公司內部完成的,其在早期階段的目的是儘可能改進產品,使其準備好進行Beta測試。Beta測試是在“外部”完成的,它讓真正的客戶有機會嘗試該程式,其目的是在程式完全釋出之前捕獲任何錯誤。Alpha測試是耗時最長的階段,有時比Beta測試長三到五倍。但是,假設沒有發現重大錯誤,Beta測試可以在幾周到一個月內完成。Alpha測試通常由工程師或公司的其他員工執行,而Beta測試則在“現實世界”中進行,臨時釋出給公眾,以獲得最廣泛的反饋。在Alpha測試期間,通常會檢測到大量的錯誤以及缺少的功能。在Beta測試期間,這些問題應該大幅減少。當Alpha階段的測試結束後,公司會對產品效能有一個很好的瞭解。Beta測試完成後,公司會對客戶的感受以及他們在測試過程中遇到的情況有一個很好的瞭解。如果兩個階段都進展順利,產品就可以釋出,供公眾享受。為了讓世界享受和使用如今電腦上的眾多程式,所付出的時間和努力往往被忽視。此類資訊讓使用者對電腦和電腦程式有了新的認識。[25]
程式開發工具
[edit | edit source]應用程式生命週期管理(ALM)工具
[edit | edit source]
ALM(應用程式生命週期管理)是管理應用程式在其整個生命週期中的工具。它們對於承受越來越大壓力的程式設計師來說非常有用,因為他們需要快速開發新程式。它們的幫助來自ALM工具可以提供的廣泛功能。一個例子是許多ALM程式如何附帶內建的程式設計工具,以及從完成的設計生成程式程式碼以建立應用程式的能力。這種程式碼生成能力為公司節省了時間和金錢,這些時間和金錢不必用於外包,尤其是在他們的程式設計人員很少的情況下。除了程式碼生成器之外,ALM程式中包含的另一個重要工具是“需求管理”。本質上,需求管理是按照這種方式定義的,指的是在開發程式的過程中跟蹤和管理程式需求,因為它們被定義,然後被修改。公司越大,他們可以購買的ALM工具集就越好;市場上有許多ALM工具集可供選擇。[26]
應用程式生成器
[edit | edit source]
應用程式生成器是極其有用的裝置。它們可以被業餘愛好者/經驗不足的人員或專業人士使用。應用程式生成器的目的是使任務比以前更簡單。即使它只是更改一些基本的格式化特性,這些生成器也可以使使用者只需輸入一個特定的鍵或命令,就可以執行所有操作,一次性完成,從而節省大量精力。這些有用的生成器之一稱為宏。宏是一個應用程式生成器,它可以簡單地使在單個命令下即時執行重複操作成為可能。這樣做的目的是使重新格式化或計算事物變得更容易,從而節省操作員的時間。[27]大多數Microsoft程式都包含一個宏記錄器,允許使用者輕鬆地記錄他們使用過的所有輸入和命令,並將它們與鍵盤快捷鍵關聯起來,以便將來重複使用。其他應用程式生成器建立報告和表單,使會員資格、記錄(如醫療處理、歷史和疫苗接種)以及保險索賠等內容更有條理,更容易獲取。
RIA工具
[edit | edit source]
其他型別的工具包括裝置軟體開發工具、軟體開發工具包(SDK)、應用程式程式設計介面(API)和富網際網路應用程式工具(RIA)。富網際網路應用程式提供了與桌面應用程式相關的許多相同功能。它們比其他基於 Web 的應用程式更具互動性和吸引力。該領域的知名公司包括微軟、Adobe 和 JavaScript。微軟實際上有一個非常完善的開發者網站,詳細介紹瞭如何建立此類應用程式。它包括一些資訊,例如在開始建立 RIA 之前需要考慮的事項,例如受眾。[28]RIA 的一些關鍵功能包括直接互動、部分頁面更新、更好的反饋、一致的外觀和感覺、離線使用和效能影響。[29]直接互動允許使用更廣泛的控制元件,例如編輯或拖放工具。部分頁面更新允許即時流傳輸,並減少等待伺服器響應的載入時間。由於部分頁面更新,RIA 可以為使用者提供更快的反饋。此外,有時可以在沒有連線的情況下離線使用 RIA。RIA 的一個缺點是,小型裝置(如手機)通常沒有執行此類應用程式所需的必要資源。為了保持安全,大多數 RIA 在桌面的隔離範圍內處理其應用程式,稱為沙箱。沙箱限制了對作業系統的訪問和可見性,以及對應用程式伺服器的訪問和可見性。
AngularJS
[edit | edit source]AngularJS(通常稱為“Angular.js”或“AngularJS 1.X”)是一個基於 JavaScript 的開源前端 Web 應用程式框架,主要由 Google 維護,並由個人和企業社群維護,以解決開發單頁面應用程式中遇到的許多挑戰。JavaScript 元件補充了 Apache Cordova,這是一個用於開發跨平臺移動應用程式的框架。[30]根據 JavaScript 分析服務 Libscore,AngularJS 被 Wolfram Alpha、NBC、Walgreens、英特爾、Sprint、ABC 新聞等網站以及 2016 年 10 月測試的 100 萬個網站中的約 12,000 個網站使用。AngularJS 是 GitHub 上有史以來排名第 10 的最受歡迎的專案。[31]AngularJS 建立在這樣的信念之上:宣告式程式設計應該用於建立使用者介面和連線軟體元件,而指令式程式設計更適合定義應用程式的業務邏輯。該框架調整和擴充套件了傳統 HTML,透過雙向資料繫結呈現動態內容,雙向資料繫結允許模型和檢視自動同步。因此,AngularJS 弱化了顯式 DOM 操作,旨在提高可測試性和效能。[32]AngularJS 雙向資料繫結是其最顯著的功能,在很大程度上減輕了伺服器後端的模板責任。相反,模板根據模型中定義的範圍內的資料以純 HTML 渲染。Angular 中的 $scope 服務檢測模型部分的更改,並透過控制器修改檢視中的 HTML 表示式。同樣,對檢視的任何更改都會反映在模型中。這避免了主動操作 DOM 的需要,並鼓勵 Web 應用程式的引導和快速原型設計。AngularJS 透過將當前值與之前儲存的值進行比較來檢測模型中的更改,這與 Ember.js 和 Backbone.js 不同,後者在模型值更改時觸發偵聽器。[33]
Node.js
[edit | edit source]
Node.js 是一個開源的跨平臺 JavaScript 執行時環境,用於在伺服器端執行 JavaScript 程式碼。[34]Node.js 使 JavaScript 可用於伺服器端指令碼,並執行指令碼以在頁面傳送到使用者 Web 瀏覽器之前生成動態網頁內容。伺服器端指令碼是一種設計網站的方法,以便在原始伺服器上執行程序或使用者請求。[35]Node.js 用於快速高效地傳送訊息、包和檔案。JavaScript 以沒有執行緒的概念而聞名——這意味著 JavaScript 的執行緒具有不同的程序元件。這個程序是沒有任何瀏覽器的 JavaScript。[36]公司正在轉向 Node.js 來建立應用程式,因為它
- 易於學習
- 允許在構建應用程式方面自由發揮
- 能夠建立前端和後端語言
- 活躍的社群
[37]Node.js 提供了一個靈活且快速的開發過程,簡單易用!
程式語言
[edit | edit source]什麼是程式語言?
[edit | edit source]
程式語言旨在與計算機通訊指令,以便計算機可以解釋這些指令並理解它們。它們用於建立程式來控制機器的行為和演算法。有多種語言被建立到該程式中,這些語言是從不同的風格或形式建立的。程式語言的描述被認為是分為語法(形式)和語義(含義)這兩個組成部分。語法是語言呈現的形式,語義是指令的實際含義或意義。編寫程式是為了讓計算機理解,以便計算機可以解釋這些指令,將其翻譯成計算機最終可以理解的指令。因此,當您在計算機啟動後開啟計算機時,它會解釋這些指令,測試記憶體並重置所有連線的裝置,並從硬碟載入作業系統。計算機執行的每個操作都有指令,這些指令需要有人將其翻譯成程式語言。每種語言都需要建立、編譯和測試,這往往是一項漫長而複雜的任務。[38]
程式語言的類別
[edit | edit source]程式語言可以歸為兩類:過程式(使用過程式方法的程式)和麵向物件(對於使用面向物件方法的程式)。然而,對程式語言進行分類最常見的方法可能是將其歸類為分層結構。程式語言可以歸為低階語言、高階語言和超高階語言。低階語言由第一代語言、機器語言和第二代語言、組合語言組成,是在非常低的級別上編寫的:程式設計由 0 和 1 組成,機器語言,組合語言包括一些 0 和 1 的名稱和符號。這些語言允許計算機硬體快速讀取命令,但代價是與高階語言相比,學習曲線要陡峭得多。[39]另一方面,高階語言更容易使用,因為它們更接近自然語言。它們也是機器無關的:在一臺計算機上編寫的程式可以在另一臺計算機上無須修改地傳輸。這與低階程式的機器依賴性形成對比,在低階程式中,需要進行修改。最後,超高階語言,也稱為第四代程式語言,很難與高階語言區分。第四代語言(4GL)被稱為宣告式語言,它沒有指定計算機應該如何處理命令。這導致程式設計師使用很少的程式碼。儘管如此,過去被認為是超高階語言的語言(例如 Visual Basic、Python、Perl)現在被簡單地稱為高階語言。[40]
有一些高階程式語言是視覺化程式語言或圖形化程式語言。它們被稱為這些名稱是因為它們具有圖形介面。在這些程式中,使用者無需鍵入程式程式碼,而是可以拖放物件以生成所需的程式碼。甚至有一些程式結合了視覺化元素來幫助編碼,但仍然需要實際編碼。這些型別的程式被稱為視覺化程式設計環境 (VPE)。Visual Basic 是最早使用視覺化程式設計環境的程式語言之一。視覺化程式設計環境的便利之處在於您可以拖放物件,但如果鍵入程式碼,程式會透過列出選項來幫助建立程式碼。這些幫助使用者學習適當的程式碼。視覺化程式設計環境的線上定義將其描述為允許在程式設計過程中使用視覺化表示式(例如圖形、繪圖和動畫或圖示)的軟體。這些視覺化專案然後用作文字程式語言的圖形介面。這些型別的視覺化程式語言軟體也用於教育目的,將來可能會成為最常見的程式語言。Scratch 是面向兒童的教育視覺化程式設計環境的一個示例。如上所述,Visual Basic 是最早使用視覺化程式設計環境的程式語言之一,但此後,C++、Pascal 和 Java 也開始建立視覺化程式設計環境。[41]
常見的程式語言
[edit | edit source]
有許多程式語言,直到今天,仍然在日常生活中被大量使用。Fortran 是一種更古老的選擇,主要用於科學領域,供科學家、數學家和制定數值公式使用。Cobol 是另一種當今廣泛使用的程式語言,通常可以在企業環境中用於日常交易。這種語言被認為非常耗時,如今越來越多的企業開始放棄這種語言,轉向更快的流程。Pascal 是另一種在數學和科學程式中常用的語言。Pascal 程式語言以著名數學家 Blaise Pascal 的名字命名。它是由國際資訊處理聯合會工作組成員 Niklaus Wirth 建立的。他建立了 Pascal 程式語言,因為他想要加入過去程式語言沒有提供的功能。它最初被設計為一種教學工具,並在其軟體中使用控制結構。控制結構的使用使程式語言與其他語言相比變得更加結構化和組織化,這就是它被用作教學工具的原因。Pascal 於 1971 年釋出,並於 1973 年進行了修訂,這使它能夠從 20 世紀 70 年代一直流行到 20 世紀 80 年代末。Pascal 的一項新功能是新的資料型別,例如 Integer、Real、Character 和 Boolean。這些新型別使 Pascal 成為一種在數學程式中得到強大應用的程式語言。另一項新功能是強大的資料型別元素,它允許 Pascal 編譯器識別和糾正不同型別變數之間不相容的賦值。這進一步有助於保持 Pascal 的組織結構,並使它能夠在大學課程中得到更多應用。Pascal 是程式語言世界的一項偉大創舉。[42]

另一種常見的程式語言是 Basic。由於其使用者友好性,它是使用最廣泛的語言之一。它被設計為一種簡單且無壓力的語言,通常用於互動式程式。它非常容易上手,許多人喜歡它簡單易懂的功能。Basic 的一個方面是 Visual Basic,它同樣使用易於理解的語言,但側重於視覺輔助。這些只是眾多複雜程式語言中的一部分例子。儘管其中許多語言在今天仍然使用,但很明顯,一些更古老、更耗時的軟體正在走向淘汰。[43]

另一方面,也有一些如今不再被廣泛使用的程式語言。其中包括 LISP 和 Prolog。LISP(LISt Processing)於 1958 年被指定,是僅次於 Fortran 的第二古老的高階程式語言。它允許程式碼以與語言中的資料結構相同的形式表達,這在執行遺傳演算法或符號操作時非常有用。另一方面,Prolog 在 20 世紀 70 年代初被設計用於自然語言處理和邏輯推理。這種語言允許使用類似的語法將邏輯表示翻譯回語言。[44] 另一種用於教孩子程式設計的語言是 Logo 程式語言,它是 LISP 的一種方言。為了作為一個學習工具,它的特點包括模組化、可擴充套件性、互動性和靈活性。另一種如今不再使用的第三代程式語言是 PL/I,“程式語言 1”。這門語言是作為 Cobol(大型商業應用)和 Fortran(科學和演算法應用)的替代品開發的。最後,也是最重要的,是第一個面向物件的程式語言之一:SmallTalk。由於現在不再存在名為 SmallTalk 的語言,其他不同的語言如 SmallTalk-xx(xx 代表語言最終確定的年份)逐漸取代了它。因此,儘管 C、Java 或 PHP 等新語言現在已經佔據主導地位,但舊的程式語言仍然在向新技術轉變的過程中發揮著重要作用。[45]

C++ 是一種通用程式語言。它具有命令式、面向物件和泛型程式設計功能,同時還提供低階記憶體操作的功能。它被設計為偏向系統程式設計以及嵌入式、資源受限和大型系統,效能、效率和靈活性的使用是其設計亮點。C++ 在許多其他情況下也被證明很有用,其主要優勢在於軟體基礎設施和資源受限的應用,包括桌面應用程式、伺服器(例如電子商務、網路搜尋或 SQL 伺服器)和效能關鍵的應用(例如電話交換機或太空探測器)。C++ 是一種編譯語言,在許多平臺上都有它的實現。許多供應商提供 C++ 編譯器,包括自由軟體基金會、微軟、英特爾和 IBM。許多其他程式語言都受到 C++ 的影響,包括 C#、D、Java 和更新版本的 C。[46]

Python 是一種開源的動態面向物件程式語言。Python 可用於開發各種應用程式,包括遊戲、資料庫和 Web 應用程式。它是一種免費提供的程式語言,幾乎可以在任何計算機上執行,無需更改程式。Python 的相容性是它每天被 Google 搜尋引擎、Youtube、NASA 和紐約證券交易所使用的理由。此外,由於其可讀性、易於獲取和可擴充套件性,Python 最近被麻省理工學院選中,用於學習程式設計的學生。[47] 另一種開源面向物件程式語言,通常與 Python 相比,是 Ruby。Ruby 可用於建立 Web 應用程式和 Linux、Mac OS X 和 Microsoft Windows 計算機上的通用程式設計。與 Python 相似,Ruby 使用一種語法,該語法相對容易閱讀和編寫。然而,不同的是,Ruby 往往會假設程式設計師的意圖,而 Python 的資訊通常在語法中是直白的。Ruby on Rails (RoR) 是一個用於開發用 Ruby 程式語言編寫的動態 Web 應用程式的框架。RoR 應用程式可以在各種型別的 Web 伺服器上執行,並使用各種資料庫,因此其使用和普及率迅速增長。
Java
[edit | edit source]
Java 是另一種非常常見的程式語言。Java 是一種高階的面向物件程式語言,旨在讓開發人員“一次編寫,隨處執行”。這意味著編碼不需要為各種平臺重新編譯,並且可以在任何系統上執行。該語言由 Sun Microsystems 於 1995 年開發,並於 2007 年作為開源軟體釋出給公眾。[48] Sun Microsystems 後來被 Oracle 收購。Java 的大部分語法都基於其他程式語言,如 C 和 C++。Java 程式被編譯成位元組碼格式,可以在執行 Java 虛擬機器的任何計算機上執行,無論計算機的體系結構多麼簡單或複雜。Java 在計算機和移動裝置上的應用程式中被廣泛使用。它深受應用程式開發人員的喜愛,因為它易於使用,並且與大多數裝置相容,因為大多數裝置都能讀取 Java。Java 語言的一個流行應用程式是 Java applet,它是一種可以插入啟用 Java 的 Web 瀏覽器的網頁中的小程式。這些 applet 可用於在瀏覽器內部運行遊戲、橫幅廣告、滾動文字或各種其他型別的程式。這些 applet 就像新增影像一樣插入網頁的 HTML 語句中。當顯示 applet 時,它會從網頁的主機伺服器下載,允許程式在檢視者的計算機上執行。[49] 移動裝置在其許多系統中都使用 Java,因為它緊湊,並且可以用於裝置中的許多操作。Android 使用 Java 作為其移動作業系統的主要組成部分。雖然不是作業系統的基礎,但 Java 用於大多數非基本功能。在手機市場方面,Java 的最大競爭對手是 Google,因為它們正在推廣自己的作業系統,用於移動裝置。Java 存在於大多數開發的應用程式中,但被程式設計為從頭開始建立簡單的程式。與任何程式語言一樣,Java 的主要缺點是它可能會暴露可被駭客攻擊的弱點。Java 目前處於第 8 版,第 9 版正在進行測試版測試。[50]
MS-DOS 和批處理檔案
[edit | edit source]批處理處理自 20 世紀 50 年代就在大型機上使用。[51] 這一切始於穿孔卡片,但它發展成了一種完全數字化的語言。MS-DOS 是“Microsoft Disk Operating System”的首字母縮略詞。MS-DOS 的介面只是一個黑色螢幕,上面有白色文字。從計算機發展的早期開始,DOS 就被用於讀取和編寫各種工作的程式。MS-DOS 批處理語言只是一個文字檔案,允許使用者建立一系列命令,這些命令就像在命令列中輸入一樣執行,並且有一些增強功能用於條件語句(根據程式是否失敗或成功做出決定)。多年來,各種功能各異的批處理版本出現在許多計算平臺上。命令提示符(現在稱為命令提示符)仍然出現在現代 Windows 和 Linux 機器上,許多 IT 專業人士對其以及它賦予他們的強大功能和控制力發誓。這種自動化常見任務的能力通常是新興程式設計師第一次接觸程式語言的體驗。
關鍵詞回顧
[edit | edit source]程序式程式設計:一種程式設計方法,其中程式被分成小的模組,這些模組在需要時由主程式或另一個模組呼叫。
變數:在計算機程式中定義的命名記憶體位置,用於儲存程式中使用的該資料項的當前值。
面向物件程式設計 (OOP):一種程式設計方法,其中程式由包含資料(屬性)和過程(方法)的物件組成,這些資料和過程用於這些物件。
面向方面程式設計 (AOP):一種程式設計方法,其中不同的功能被清晰地分離,以便程式元件可以獨立於彼此開發和修改,並且這些元件可以很容易地與單獨的、無關的物件一起重用。
程式開發:建立應用程式程式的過程。
程式開發生命週期 (PDLC):包含程式開發的五個階段的過程:分析、設計、編碼、除錯和測試,以及實施和維護應用程式軟體。
問題分析:程式開發生命週期中的一個階段,在這個階段中仔細考慮問題並制定程式規範。
程式設計師:負責編寫、測試和維護計算機程式的人員。
程式設計:程式開發生命週期中的一個階段,在這個階段中,程式規範被擴充套件成新程式的完整設計。
流程圖:一種程式設計工具,它以圖形方式顯示計算機程式將採取的步驟。
虛擬碼:一種程式設計工具,它使用類似英語的語句來概述程式的邏輯。
統一建模語言 (UML):一套用於建立業務模型的標準符號;廣泛用於面向物件程式的建模。
控制結構:一種用於控制計算機程式、模組或方法中邏輯流程的模式。
順序控制結構:一系列相互跟隨的語句。
選擇控制結構:一系列語句,其中決定的結果決定了程式執行的方向。
重複控制結構:迴圈中的一系列語句,這些語句會重複執行,直到滿足特定條件。
程式編碼:程式開發生命週期中的一個階段,在這個階段中使用程式語言編寫程式程式碼。
編碼:編寫程式語言語句以建立計算機程式的過程。
原始碼:計算機程式在編譯之前。
程式除錯和測試:程式開發生命週期中的一個階段,確保程式正確並按預期工作。
Alpha 和 Beta 測試:兩種測試型別,可以提高產品在市場上的成功率和使用壽命。 https://www.softwaretestinghelp.com/what-is-alpha-testing-beta-testing。首先進行 Alpha 測試,在公司內部進行,Beta 測試則傳送到不同的州或國家,以確保程式 100% 準備好使用。
除錯:確保程式沒有錯誤的過程。
目的碼:在編譯程式的原始碼時生成的計算機程式的機器語言版本。
語言翻譯器:將原始碼轉換為目的碼的軟體程式。
編譯器:一種語言翻譯器,在執行程式之前將其整個程式轉換為機器語言。
直譯器:一種語言翻譯器,將程式語句逐行轉換為機器語言,並立即執行每行。
1.) 編譯之前,計算機程式被稱為什麼?
2.) 圖形化顯示計算機程式將採取的步驟的程式設計工具被稱為 _______?
3.) PDLC 的哪個階段使用程式語言編寫程式程式碼?
4.) 如果你負責編寫、測試和維護計算機程式,你就是一名 _______。
5.) 哪個語言翻譯器在執行之前將整個程式轉換為機器語言?
6.) 哪個過程確保程式沒有錯誤?
7.) 建立應用程式程式的過程是什麼?
8.) 程式開發生命週期中有幾個階段?
9.) 按順序列出 PDLC 的階段。
10.) 將原始碼轉換為目的碼的軟體程式是什麼?
1.) 原始碼
2.) 流程圖
3.) 程式編碼
4.) 程式設計師
5.) 編譯器
6.) 除錯
7.) 程式開發
8.) 五個
9.) 分析、設計、編碼、除錯和測試、實施和維護應用程式軟體
10.) 編譯器
- ↑ http://education-portal.com/academy/lesson/object-oriented-programming-vs-procedural-programming.html#lesson
- ↑ http://education-portal.com/academy/lesson/object-oriented-programming-vs-procedural-programming.html#lesson
- ↑ http://www.java.com/en/
- ↑ http://www.wizards.com/dnd/
- ↑ http://www.onjava.com/pub/a/onjava/2004/01/14/aop.html
- ↑ http://www.adaptivesd.com/articles/messy.htm
- ↑ http://blog.teachbook.com.au/index.php/computer-science/software-development/program-development-lifecycle/
- ↑ http://study.com/academy/lesson/how-to-write-a-program-coding-testing-debugging.html
- ↑ Wikipedia: Flowgorithm
- ↑ http://www.webopedia.com/TERM/P/pseudocode.html
- ↑ http://whatis.techtarget.com/definition/compiler
- ↑ http://en.wikipedia.org/wiki/Compiler
- ↑ http://www.webopedia.com/TERM/C/compiler.html
- ↑ https://en.wikipedia.org/wiki/Compiler
- ↑ 理解計算機 第 14 版 由 Deborah Morley & Charles Parker 編寫
- ↑ http://www.britannica.com/EBchecked/topic/1086517/sequence
- ↑ http://www.thevbprogrammer.com/Ch05/05-03-SelectionStructure.htm
- ↑ http://www.cs.fsu.edu/~myers/c++/notes/control1.html
- ↑ http://www.ehow.com/facts_5941523_desk-checking_.html
- ↑ http://searchsoftwarequality.techtarget.com/definition/debugging
- ↑ http://www.techopedia.com/definition/16373/debugging
- ↑ http://en.wikipedia.org/wiki/Debugging
- ↑ http://en.wikipedia.org/wiki/Debugging
- ↑ http://www.thefreedictionary.com/alpha+test
- ↑ http://www.centercode.com/blog/2011/01/alpha-vs-beta-testing/
- ↑ http://www.infoq.com/research/alm-survey
- ↑ http://office.microsoft.com/en-us/help/macros-demystified-what-they-are-and-why-to-use-them-HA010007210.aspx
- ↑ http://msdn.microsoft.com/en-us/library/ee658083.aspx
- ↑ http://www.computerworld.com/s/article/335519/Rich_Internet_Applications?taxonomyId=16&pageNumber=2
- ↑ Wikipedia: AngularJS
- ↑ Wikipedia: AngularJS
- ↑ Wikipedia: AngularJS
- ↑ Wikipedia: AngularJS
- ↑ Wikipedia: NodeJS
- ↑ [[1]]
- ↑ [[2]]
- ↑ [[3]]
- ↑ http://cplus.about.com/od/introductiontoprogramming/p/programming.htm
- ↑ http://www.webopedia.com/TERM/M/machine_language.html
- ↑ https://en.wikipedia.org/wiki/Very_high-level_programming_language
- ↑ http://dictionary.reference.com/browse/visual+programming+environment
- ↑ http://groups.engin.umd.umich.edu/CIS/course.des/cis400/pascal/pascal.html
- ↑ http://www.freerepublic.com/focus/chat/2880277/posts
- ↑ http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Lisp_(programming_language).html
- ↑ http://el.media.mit.edu/logo-foundation/logo/
- ↑ 維基百科:C++
- ↑ http://python.about.com/od/gettingstarted/ss/whatispython_7.htm
- ↑ https://www.java.com/en/download/faq/whatis_java.xml
- ↑ http://en.wikipedia.org/wiki/Java_(programming_language)
- ↑ https://www.oracle.com/java/index.html
- ↑ https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true