iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0

程式設計(programming)是什麼?

https://ithelp.ithome.com.tw/upload/images/20230903/20149362mMAfyhYpMt.png
可以從兩個層面來看

  • 程式(Program
    就是程式碼編寫,俗稱Coiding,將你的想法和解決方案轉化為電腦程式,簡單來說就是專門給計算機看的「劇本」

  • 設計(Design
    就是在開始編寫程式碼之前的計畫和設計過程,像是從程式面和產品面來設計整體架構,選擇合適的資料結構、依不同的應用領域和需求選擇需要的程式語言和工具。設計是程式設計的Base,有一個好的設計可以使程式開發更有效率和有更高的可維護性

程式語言也有階級之分?


圖片來源

大致分類如下:

機器語言
低階語言 (組合語言 assembly language)
高階語言

  • 機器語言
    計算機所能看懂的「原始指令」稱為「機器語言」,是由二進位代碼 0 和 1 所組成,通常都是非常的低階,所謂的低階就是他們做的事情非常非常原始,但也因為機器語言不需要任何編譯過程,所以執行速度很快

  • 低階語言
    有「更接近硬體」的特性,用低階語言所編寫的程式往往是相對難以移植、可攜性低的,也就是可以在ACER電腦上執行的程式,通常不能在ASUS的電腦上執行,簡單來說,使用機器語言組合成人類想要的程式吃力不討好,難以開發和維護

為了解決這個問題,於是 高階語言 就出現了

高階語言的特點

  1. 偏向人類思考和閱讀習慣
  2. 敘述性語言
  3. 較容易撰寫、除錯
  4. 對硬體的控制能力較差、效率也較差。
  5. Basic, Shell Script, Python, Java, C++ 等都是高階語言。

因更偏向於人類的思考,因此高階語言相對於低階語言來說,程式撰寫及維護方面都較為容易。而當我們使用一個高階語言的敘述來命令電腦工作時,相當於下達許多機器語言

以下舉個例子可以感受一下低階語言和高階語言的差別
如果要計算兩個數字的合,低階語言的過程迂迴,不利於人類閱讀
https://ithelp.ithome.com.tw/upload/images/20230903/20149362Lydz3JIf1D.png

如果用高階語言,只需要以下寫法就可達成目的 (此圖單純示意用)
https://ithelp.ithome.com.tw/upload/images/20230903/20149362AcCHqdW3g8.png

程式語言的翻譯官

由於計算機無法執行高階語言,所以Compiler因此而誕生,他的職責就是「翻譯」
負責把高階語言轉換成功能相同的機器語言,也就是電腦可執行的0和1數列,,這裡又可以延伸出編譯與直譯,下一章再討論 這也是個廣大水深的領域><

總結

  • 機器語言就是給計算機看的指令劇本
  • 程式設計的同時,也必須知道編譯程式
  • 機器語言、低階語言、高階語言差別(有些文章會把低階語言分為:機器語言/組合語言兩大類別)

特性| 機器語言 | 低階語言|高階語言
------------- | -------------
可讀性 | 低 | 中| 高
維護性 |低 | 中| 高
硬體控制性 | 好| 中| 差
可攜性 | 低| 中| 高
佔用記憶體空間|小|中|大
執行速度|快|中|慢

參考資料

PS. 若有解說不清或是不正確之處,歡迎指教/images/emoticon/emoticon41.gif


上一篇
Day 1 | Ready Go! 計概文章綱要
下一篇
Day 3 | 計算機的翻譯官 - 編譯與直譯
系列文
來場計概入門課吧X資訊人該了解的通識素養31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言