程序开发过程的演变
文章目錄
- 1 最早的程序開發(fā)過程
- 2 用匯編語言開發(fā)程序
- 3 用高級語言開發(fā)程序
- 4 不同層次語言之間的等價轉(zhuǎn)換
- 5 開發(fā)和運行程序所需要的支撐條件
1 最早的程序開發(fā)過程
用機器語言編寫程序,并記錄在紙帶或卡片上。
在這個階段,輸入可能是按鈕、開關(guān);輸出可能是指示燈等。所有信息都是0/1序列!
若在第4條指令前加入指令,則需重新計算地址碼(如jxx的目標(biāo)地址),然后重新打孔。不靈活!書寫、閱讀困難!
機器語言稱為第一代程序設(shè)計語言(First generation programming language ,1GL )。
2 用匯編語言開發(fā)程序
匯編語言的特點:
- 用助記符表示操作碼
- 用標(biāo)號表示位置
- 用助記符表示寄存器
匯編語言的優(yōu)點:
- 不會因為增減指令而需要修改其他指令
- 不需記憶指令編碼,編寫方便
- 可讀性比機器語言強
在第4條指令前加指令時不用改變add、jxx和sub指令中的地址碼!
我們需要用匯編程序?qū)R編語言轉(zhuǎn)換為機器語言才能夠被CPU執(zhí)行。
機器語言和匯編語言都是面向機器結(jié)構(gòu)的語言,故它們統(tǒng)稱為機器級語言。
匯編語言稱為第二代程序設(shè)計語言(Second generation programming language ,2GL )。
3 用高級語言開發(fā)程序
隨著技術(shù)的發(fā)展,出現(xiàn)了許多高級編程語言:
- 它們與具體機器結(jié)構(gòu)無關(guān)
- 面向算法描述,比機器級語言描述能力強得多
- 高級語言中一條語句對應(yīng)幾條、幾十條甚至幾百條指令
- 有“面向過程”和“面向?qū)ο蟆钡恼Z言之分
- 處理邏輯分為三種結(jié)構(gòu)
- 順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
- 有兩種轉(zhuǎn)換方式:“編譯”和“解釋”
- 編譯程序(Complier):將高級語言源程序轉(zhuǎn)換為機器級目標(biāo)程序,執(zhí)行時只要啟動目標(biāo)程序即可
- 解釋程序(Interpreter ):將高級語言語句逐條翻譯成機器指令并立即執(zhí)行,不生成目標(biāo)文件。
現(xiàn)在,幾乎所有程序員都用高級語言編程,但最終要將高級語言轉(zhuǎn)換為機器語言程序。
第三代程序設(shè)計語言(3GL)為過程式語言,編碼時需要描述實現(xiàn)過程,即“如何做”。
第四代程序設(shè)計語言(4GL) 為非過程化語言,編碼時只需說明“做什么”,不需要描述具體的算法實現(xiàn)細節(jié)。
4 不同層次語言之間的等價轉(zhuǎn)換
任何高級語言程序最終通過執(zhí)行若干條指令來完成!
5 開發(fā)和運行程序所需要的支撐條件
最早的程序開發(fā)很簡單(怎樣簡單?)
- 直接輸入指令和數(shù)據(jù),啟動后把第一條指令地址送PC開始執(zhí)行
用高級語言開發(fā)程序需要復(fù)雜的支撐環(huán)境(怎樣的環(huán)境?):
-
需要編輯器編寫源程序
-
需要一套翻譯轉(zhuǎn)換軟件處理各類源程序
- 編譯方式:預(yù)處理程序、編譯器、匯編器、鏈接器
- 解釋方式:解釋程序
-
需要一個可以執(zhí)行程序的界面(環(huán)境)
- GUI方式:圖形用戶界面
- CUI方式:命令行用戶界面
支撐程序開發(fā)和運行的環(huán)境由系統(tǒng)軟件提供,最重要的系統(tǒng)軟件是操作系統(tǒng)(包括人機交互界面、
提供服務(wù)功能的內(nèi)核例程)和語言處理系統(tǒng)(各種語言處理程序,如編譯、匯編、鏈接;運行時系統(tǒng),如庫函數(shù),調(diào)試、優(yōu)化等功能)。語言處理系統(tǒng)運行在操作系統(tǒng)之上,操作系統(tǒng)利用指令管理硬件。
參考資料:
總結(jié)
- 上一篇: C#中的值类型和引用类型
- 下一篇: Hello程序的转换处理过程及程序执行时