程式語言的三個基本特性

2024/02/27閱讀時間約 3 分鐘

Let's learn 3 properties of programming language.


自 1970 年代電腦被發明盛行多年後的今天,大部分人早已熟悉「程式語言」這個專有名詞,也知道它是被設計來控制電腦的一種知識工具,現今世界上有大一群人仰賴它來養家活口,重要性不言而喻。世界上出現的程式語言已經有上千種之多,每個都有其應用目的、設計邏輯跟一套非常相似文字符號系統,而且越近代的程式語言也越來越像自然語言,這點新手學習門檻降低不少,儘管如此仍然沒有一個人要敢說自己精通世上所有程式語言(也沒必要)。

關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是「循序、選擇、迴圈」。

循序,是程式語言的基礎

循序如同字面所言,就是從頭到尾按照順序。電腦最強大的地方在於聽取指令快速做出行動且 100% 執行。軟體工程師要做的事就是把需要電腦做的複雜任務拆解成單一步驟組合成一個流程,再用程式語言「翻譯」來寫入到文本裡變成程式碼。

換句話說,循序就是按照順序來,怎麼說就怎麼做(電腦完全符合誠信正直法則)。

選擇,是各種條件的判斷

了解循序概念跟一些簡單的語法,就能夠寫出一些規模小的腳本,簡單的程式,例如排程。通常看似簡單的行為需要的處理流程往往比想像的還複雜,舉個例子你就更明白了,小時候學過「過馬路要紅燈停綠燈行」,感覺很簡單,如果交給電腦來做用近代一點的程式語言來處理就會變成

「過馬路,如果看到有斑馬線且紅綠燈顯示紅燈,就原地等待;如果看到有斑馬線且紅綠燈顯示綠燈,就往前走」

如果 A 就 B 這種表達方式就是選擇,A 叫做判斷條件,B 為 A 條件符合後電腦接下來要執行的動作指令。

所有電腦的選擇行為都是軟體工程師預先寫好再被動等待觸發的,狀況覆蓋率取決於設計它的軟體工程師對問題的認知程度,覆蓋率高的程式「看起來」會更聰明。另外,無限制地加入各種判斷條件,等價、冗余的判斷條件也會影響執行效率。

迴圈,是自動重複的選擇

迴圈是基於選擇的一種應用,被用來連續處理一連串相同或相似的狀況,直到某個特殊條件成立。

繼續來用過馬路為例,前面說「過馬路,如果看到有斑馬線且紅綠燈顯示紅燈,就原地等待;如果看到有斑馬線且紅綠燈顯示綠燈,就往前走」,如果程式真的這樣寫,你會發現自己永遠等在斑馬線前面過不了馬路!因為紅燈是需要讀秒的,必須等到讀秒結束才會變綠燈,所以原本的判斷綠燈的程式碼等同沒有作用!

改善的方式就是使用第三個特性「迴圈」,讓程式每隔一小段時間就去檢查燈號再來決定要不要開始往前走,所以可以改成

「過馬路,如果看到有斑馬線且紅綠燈顯示紅燈,就原地等待;每隔一秒鐘就看一次燈號,如果看到有斑馬線且紅綠燈顯示綠燈,就不等待開始往前走,否則繼續等」

假設紅燈等待的時間是 30 秒,那麼這段程式判斷綠燈的動作就會被執行 30 次,而判斷綠燈的這段程式碼只要寫一次就可以了。

試著學習一個新的程式語言

「循序、選擇、迴圈」這三個程式語言基本原則是我自己在軟體這行運用多年的觀念,工作上我也用它來學會不少程式語言,每當有新的任務需求或是轉換工作有新的程式語言需求,我就能直奔主題只要稍微注意一下新的程式語言遇舊的差異點就可以差不多準備開工了,因此節省不少學習時間。

不過隨著物件導向語言的發展,顯然只用三個基本特性顯然已經不夠了,應該加入第四個特性「物件導向」來與時俱進,後續我打算來聊聊物件導向這個主題。

9會員
58內容數
WarrenLo's 軟體設計武功祕笈
留言0
查看全部
發表第一個留言支持創作者!