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