目錄
- 程式的本質
- 記憶體 & 暫存器
- 程式語言的發展
- 編程語言的本質區別
https://www.bilibili.com/video/BV1UV411B7qU?p=7 筆記
程式的本質
- 編譯器 將 程式代碼 轉化成 CPU 指令/機器碼;
- 指令裝載到記憶體中;
- CPU 讀取/寫入 記憶體;
- CPU 控制計算機的硬體
CPU 中比較重要的組成
- 暫存器,資訊存盤
- 運算器,資訊處理
- 控制器,控制其他器件進行作業
記憶體 & 暫存器
記憶體和暫存器都可以用來存放東西,但是暫存器就在 CPU 里面,CPU 訪問它更快,
記憶體和暫存器呼叫示例:
資料的計算
int a = 1;
int b = a + 1
a, b 都存在記憶體中,資料會送到暫存器進行計算(+1),然后回傳記憶體,

程式語言的發展
- 機器語言
- 匯編語言
- 高級語言
- 匯編語言 和 機器語言 是一一對應的,每一條 機器指令 都有與之對應的 匯編指令;
- 匯編 通過
編譯得到 機器語言,機器語言通過反匯編得到匯編語言; - 高級語言可以通過編譯得到匯編語言\機器語言,但匯編語言\機器語言幾乎不可能還原成高級;
- 高級語言不能直接訪問暫存器;
編程語言的本質區別


JS/PHP 代碼最侄訓轉化為機器碼,但看不到這個機器碼;引擎屏蔽了這些細節,
Java 會轉化為位元組碼,由 JVM 裝載
-
編譯型語言
- C / C++ / OC / Swift
- 容易被反匯編 -
編譯型語言(依賴虛擬機)
- Java / Ruby
- Java 由 JVM 進行裝載位元組碼
- 虛擬機可以看做是小型作業系統 -
腳本語言
- Python / JS / PHP
- PHP 由ZE(Zend Engine)進行決議
編譯語言要求全部都對才能執行;
腳本語言是一行一行去掃描執行,某一行出錯,前面會繼續執行,后面不會,效率比編譯語言低,因為是運行時來處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252569.html
標籤:C++
下一篇:程式編譯
