Rust是如何用Rust編寫的? - Reddit
我不是程式設計師,但是會看 Rust 的 github 儲存庫,我注意到它在右下角是如何寫“Rust 97.8%”的,我認為這意味著 97.8% 的指令碼是 Rust。這怎麼可能?
回答:
只需使用現有語言編寫編譯器,然後當新語言足夠表達時,用新語言重寫編譯器。
在此基礎上補充一點,這就是編譯器的典型構建方式。
在過去的日子裡,每個人都是用匯編編寫的--有時甚至是用原始機器碼編寫的!
但是,現在的情況不同了。
為了構建一個編譯器,我們必須首先用其他語言(那時是原始彙編)編寫一個 "原始基本編譯器"。
然後,我們使用該編譯器來構建新的編譯器。這真是太神奇了,真的! 如果你有興趣,Brailsford教授在Computerphile的影片中談到了這一點。
總之,在Rust的案例中,他們用來 "引導 "早期rustc的語言是OCaml。Rustc開發指南》廣泛詳細地談到了這一點。
要理解的關鍵是:Rust 1.55不能編譯Rust 1.55,因為很明顯,那麼原始的Rust 1.55是從哪裡來的?它並不存在。
那麼Rust 1.55是如何產生的呢?它是用Rust 1.54編譯的。而那一個是由Rust 1.53編譯的。以此類推。
最終,你會得到最初的Rust編譯器,它是用Rust編寫的,由之前的編譯器編譯,而編譯器是用Ocaml編寫的。
然後你可以以同樣的方式跟蹤Ocaml的版本... 最終你會得到一些人在一張物理紙上手動打孔,將編譯器編碼到一個古老的計算機中。
這就像創造一種新的口頭語言。你可以從定義一些詞開始,並將它們翻譯成其他語言。但遲早有一天,新的語言本身可以自我維持並定義自己的詞語。
相關文章
- Rust能讓我寫出好的程式碼 - RedditRust
- ekzhang/rustpad:使用Rust編寫的高效程式碼編輯器Rust
- 【保姆級教程】如何用Rust編寫一個ChatGPT桌面應用RustChatGPT
- Rustyinject是Rust的編譯時依賴注入DI庫Rust編譯依賴注入
- Rust語言最獨特的特點是什麼? - RedditRust
- Rust讓我上癮了 - RedditRust
- Rust, Go與Hasekll比較 - RedditRustGo
- 使用 Rust + WebAssembly 編寫 crc32RustWeb
- Rust編寫的新終端多路複用器Rust
- locutus:用Rust編寫的去中心化平臺Rust中心化
- 使用Rust編寫的各種遊戲 - GameDev#28Rust遊戲GAMdev
- rust druid編寫第一個窗體RustUI
- 使用 Rust 語言編寫 Java JNI 實現RustJava
- 使用 macro_rules 編寫生產 Rust 宏!MacRust
- 用Rust編寫的快如閃電的程式碼編輯器:lapceRust
- Rust 問答之什麼是 rustcRust
- Youki:用 Rust 編寫的更快Docker容器執行時RustDocker
- ChiselStore:Rust編寫的Raft分散式SQLite資料庫RustRaft分散式SQLite資料庫
- doyoubi/undermoon:Rust語言編寫的Redis叢集方案RustRedis
- Pingora:替代Nginx、Rust編寫的HTTP伺服器GoNginxRustHTTP伺服器
- HVM:Rust編寫的比Haskell GHC更好的執行時RustHaskell
- Rust 程式碼質量和漏洞掃描工具 - RedditRust
- 使用rust編寫dwm status-bar應用程式Rust
- 用 Rust 編寫 eBPF/XDP 負載均衡器RusteBPF負載
- Rust 條件編譯Rust編譯
- [譯]使用 Rust 編寫快速安全的原生 Node.js 模組RustNode.js
- lemmy:Rust編寫的fediverse連結聚合器和論壇Rust
- 用Rust編寫的資料庫GreptimeDB現開源Rust資料庫
- Aero:用rust編寫的新現代作業系統Rust作業系統
- Rust編寫的Memcached快取替代品:memc.rsRust快取
- WebTrust是什麼?WebTrust認證的CA有哪些?WebRust
- Wez:Rust編寫的類似Powershell的終端模擬器Rust
- Rust可以做C/C++所有低階工作嗎? - RedditRustC++
- Go和Rust都是系統語言和通用語言 - RedditGoRust
- 使用Rust編寫嵌入式韌體入門教程Rust
- substrate輕鬆學系列5:編寫pallet的Rust前置知識Rust
- 使用Rust編寫的區塊鏈技術遭網友反感Rust區塊鏈
- V8替代?用Rust編寫的JavaScript引擎Boa釋出RustJavaScript