技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
30
0
Software Development
RISC-V 與處理器之架構學習及應用
系列 第
30
篇
[Day30] 從抽象層次到效能改善
16th鐵人賽
凱特
2024-10-14 00:09:15
122 瀏覽
分享至
1.
Abstraction
:
程式的表示層級:
高階語言程式
(例如 C):人類可讀的語言,易於撰寫但難以高效執行。
組合語言程式
(例如 RISC-V):稍微接近硬體,易於機器理解,但需要較多的技術知識撰寫。
機器語言程式
(RISC-V):直接在硬體上執行的語言,最難撰寫,但效率最高。
2.
Language Execution Continuum
:
Interpreter (解釋器)
:一個程式,用來直接執行其他程式的源代碼。
解釋高階語言(例如 Python, Java)時效率較低,但易於編寫。
執行機器碼時效率最高,但難以編寫。
翻譯 (Translation)
:將程式從一種語言轉換到另一種語言,以提高執行效率。
3.
Interpretation vs. Translation
:
Interpreter (解釋器)
:直接執行源語言中的程式。
Translator (翻譯器)
:將程式從源語言轉換為另一個語言的等效程式。
4.
Interpretation
:
舉例:Python 程式
foo.py
會由 Python 解釋器讀取並執行。
Python 解釋器是一個程式,負責讀取和執行 Python 程式的功能。
5.
Why interpret machine language in software?
:
模擬器 (例如 VENUS RISC-V)
:適用於學習和除錯。
蘋果 Mac 系統轉換案例
:從 Motorola 680x0 指令集轉換到 PowerPC,讓程式保留了舊的機器碼和新的機器碼,並在必要時模擬舊的機器碼。
6.
Interpretation vs. Translation
:
解釋器較容易撰寫,因為更靠近高階語言。
解釋器執行速度較慢(大約是翻譯的十分之一),但程式碼較小。
翻譯/編譯的程式碼幾乎總是更高效,適合對性能要求高的應用,如操作系統。
7.
Translation/Compilation and Open Source
:
翻譯和編譯過程可以將程式的源碼隱藏,這在市場中有助於創造價值(例如,微軟保持其源碼秘密)。
另一種模式是開放源碼,通過公開源碼來創造價值並促進開發者社群。
留言
追蹤
檢舉
上一篇
[Day29] 總結與流程 (5/5)
系列文
RISC-V 與處理器之架構學習及應用
共
30
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
26
[Day26] CALL: Assembler (2/5)
27
[Day27] CALL: Linker (3/5)
28
[Day28] CALL: Loader (4/5)
29
[Day29] 總結與流程 (5/5)
30
[Day30] 從抽象層次到效能改善
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22201
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
teams 未完整轉移 skype 聯絡人
雲端 ERP 評估
信箱重覆寄信
請問有推薦初學者使用的 GUI 應用程式開發工具嗎?
遠端連線終端機
【Python】
TEAMS授權帳號問題和連線方式
請問有比樂詞網更好的網絡術語詞典嗎?
Line官方帳號『免費通話』圖文功能連結問題
Outlook信箱畫面閃爍
熱門回答
請問有推薦初學者使用的 GUI 應用程式開發工具嗎?
雲端 ERP 評估
信箱重覆寄信
Wifi cert 証書認証問題
"已解決"USB印表機轉COM
熱門文章
如何將 SKYPE 轉移到 Teams
Visual Studio Community 2022 建立用 C++ 呼叫 EXE 的安裝檔 && Pyinstaller 打包外部文件 (INI)
基於WebGL和Three.js構建高性能虛擬試穿系統:技術實現與挑戰
JAVA 入門筆記 - 2 - 環境建置與開發準備
在Ubuntu系統上架設Sql Server的Redmine-1筆記
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}