課程說明
程式語言如何在引擎蓋下工作?編譯器和直譯器之間有什麼區別?什麼是虛擬機器,以及JIT-編譯器?函數語言程式設計和指令式程式設計的區別又是什麼呢?
當涉及到實現一種程式語言時,有太多的問題了!
學校裡的 “編譯器課程 “的問題是,它們通常被表述為一些 “硬核火箭科學“,只適合高階工程師。
此外,經典的編譯器書籍從最不重要的話題開始,比如詞法分析,馬上就深入到形式化語法的理論方面。而到了實現第一個 Tokenizer 模組的時候,學生們就會對這個主題失去興趣,沒有機會真正開始實現一種程式語言本身。而這一切都被分散到整個學期的標記器和 BNF 語法的混亂中,而沒有理解程式語言的實際語義。
我相信我們應該能夠在4-6個小時內建立並理解一個完整的程式語言語義( full programming language semantics ),內容直奔主題,在現場編碼課程中以配對程式設計的方式展示,並以可理解的方式描述。
在 “解釋要點 “課程中,我們特別關注執行時期語義( runtime semantics ),並為一種非常類似於 JavaScript 或 Python的程式語言建立一個直譯器。
https://softnshare.com/essentials-of-interpretation/
「python直譯器編譯器」的推薦目錄:
- 關於python直譯器編譯器 在 軟體開發學習資訊分享 Facebook 的最佳貼文
- 關於python直譯器編譯器 在 iThome Facebook 的精選貼文
- 關於python直譯器編譯器 在 軟體開發學習資訊分享 Facebook 的最佳解答
- 關於python直譯器編譯器 在 Re: [請益] 想不通直譯器vs編譯器vs機器碼的問題- 看板Soft_Job 的評價
- 關於python直譯器編譯器 在 Python編譯與直譯探討 - NetJagaimo 的評價
- 關於python直譯器編譯器 在 直譯器編譯器優缺點的推薦,YOUTUBE和網路上有這些評價 的評價
- 關於python直譯器編譯器 在 【Python】蓄勢待發!安裝Python Interpreter 直譯器 - YouTube 的評價
- 關於python直譯器編譯器 在 python compiler推薦2023-在Facebook/IG/Youtube上的焦點 ... 的評價
- 關於python直譯器編譯器 在 python compiler推薦2023-在Facebook/IG/Youtube上的焦點 ... 的評價
python直譯器編譯器 在 iThome Facebook 的精選貼文
Pyodide是一個包含科學堆疊,可以將Python編譯成WebAssembly的直譯器專案,適合用於想要在網頁瀏覽器中執行Python的使用案例。Mozilla在發布Pyodide 0.17版的同時,也宣布Pyodide從Mozilla分離出來,在GitHub中以獨立組織的形式運作
#看更多 https://www.ithome.com.tw/news/144062
------------------------------------------------------------
【獨步全球.臺灣唯一 𝗖𝗬𝗕𝗘𝗥𝗦𝗘𝗖 𝟮𝟬𝟮𝟭 臺灣資安大會】
👉👉 5/4 ~ 5/6 臺北南港展覽二館 免費參加 馬上出發!
✦ 全方位 200+ 主題論壇議程
https://r.itho.me/2021-agenda
✦ 突破 200 + 品牌資安大展
https://r.itho.me/2021-expo
✦ 佳評如潮 Cyber LAB 獨家企劃
https://r.itho.me/2021-lab
✦ Cyber Talent 新鮮人職場專區
https://r.itho.me/2021-talent
✦ 看見臺灣資安館 自主研發實力
https://r.itho.me/2021-twpavilion
✦ 擴增升級 六大實境遊戲區
https://r.itho.me/2021-playground
✦ 票選 Tech Demo Award 抽大獎
https://r.itho.me/2021-techdemo
✦ 逛展與會限定 多重實用好禮
https://r.itho.me/2021-specialevents
🏆 超規格 3 天展會、撐住 2021 全球唯一實體資安盛事
獨家內容 全程免費、馬上前往南港展覽二館現場體驗 🔰
________________________________
𝗖𝗬𝗕𝗘𝗥𝗦𝗘𝗖 𝟮𝟬𝟮𝟭 臺灣資安大會
時間: 5 月 4 - 6 日
地點: 臺北南港展覽二館
官網: https://r.itho.me/CYBERSEC_2021
#TRUST_redefined #信任重構
#CYBERSEC2021 #2021臺灣資安大會
python直譯器編譯器 在 軟體開發學習資訊分享 Facebook 的最佳解答
記憶體洩漏( Memory leaks ) 和迷途指標( dangling pointers )是手動記憶體管理的主要問題。 你在連結串列中刪除了父節點,卻忘了先刪除它的所有子節點ーー你的記憶體正在洩漏。 你以正確的順序刪除一個物件鏈ー但是突然你的程式崩潰了,因此你忘記了這個資源的第二個所有者,這個資源現在試圖取消參考( dereference ) 一個空指標( null-pointer )。
為了避免這些問題,大多數現代高階程式語言實現了自動記憶體管理。 你可以手動分配物件的記憶體,但是不必擔心它們的釋放: 一個特殊的程式,垃圾收集器,知道如何正確地自動釋放物件,並回收它們以供將來重複使用。
在“垃圾收集器必備基礎”課程中,我們學習了與自動記憶體管理相關的所有不同的技術和演算法,這些技術和演算法現在已經在實踐中得到了應用。
✅這門課是給誰上的?
首先,針對編譯器工程師。
在實現程式語言時,很有可能需要實現一個垃圾收集器。 即使最初定位為“記憶體安全”的語言,如 Rust,最終也實現了自動參考計數(ARC)和其它收集器。
重申一下: 在大多數現代高階程式語言中,垃圾收集器模組(或多個 GC 模組,比如 Java)現在基本上是必需的。
如果實現程式語言不是我每天的工作?
如果你不是一個編譯器工程師,那麼這個課程對你來說仍然是有趣的。 總的來說,實現垃圾收集器或記憶體管理器是一項相當高階的工程任務。 這是一個簡單的技巧: 你參與一些複雜的專案(如垃圾收集器、編譯器、直譯器等) ,在構建它時,你將學習所有不同的資料結構和演算法。 然後回到“每日程式設計” ,得到能力上的提升以成為一個更好的工程師,掌握了複雜系統的可轉移通用知識。
✅這個專案我需要熟悉 C 還是 C++ ?
也不盡然! 當然,C 和 C++ 可能是最適合原始記憶體操作的語言,並且在這裡非常適合,但是在課程中我們學習通用設計演算法,主要關注垃圾收集器和記憶體分配器的理論方面。 這意味著你可以用任何你想要的語言來實現它們。 例如,你可以在 JavaScript 中為一個虛擬 Heap 分配一個 ArrayBuffer,或者類似的在 Python、 Rust 等中分配一個 bytearray。
本課程中的大多數演算法都是用泛型虛擬碼( generic pseudo-code )描述的,因此你可以將它們移植到任何語言中。
https://softnshare.com/essentials-of-garbage-collectors/
python直譯器編譯器 在 Python編譯與直譯探討 - NetJagaimo 的推薦與評價
Python編譯 與直譯探討. 記得大一上計算機概論的時候,老師說過程式語言分成編譯式程式語言,以及直譯式程式語言,所謂直譯式程式語言就是一行一行這樣 ... ... <看更多>
python直譯器編譯器 在 【Python】蓄勢待發!安裝Python Interpreter 直譯器 - YouTube 的推薦與評價
![影片讀取中](/images/youtube.png)
2025 HKDSE ICT Programming Syllabus 中三課程清Concept Python Programming Interpreter 直譯器 、Integrated Development and Learning Environment ... ... <看更多>
python直譯器編譯器 在 Re: [請益] 想不通直譯器vs編譯器vs機器碼的問題- 看板Soft_Job 的推薦與評價
※ 引述《dragoncfe168 (梅長蘇)》之銘言:
: 請問一下
: 為何直譯器將source code轉譯成機器碼,
: 不會產生不同電腦的機器語言不同 而無法執行的問題???
: 反觀同樣把source code轉譯成機器碼的編譯器
: 卻會有此類問題呢???
雖然大家已經回很多了,但再回一篇應該也沒關係吧。
試試看能不能用簡單的方式來類比,當然因為是類比,所以不是那麼精確,
例如轉成機器碼這件事本身還牽扯到 Linker 等等的,就先不管了啦。XD
從後續的推文來看,原 PO 提到的其實有三種東西:
1. 編譯成機器碼的編譯器模式 (Ex. 傳統的 C/C++ 編譯器)
類比:
- 書面講稿翻譯,從中文翻成英文,管你講者唸不唸,我全部一次
翻譯好給你。
- 聽眾語言(目標平台)不同,下一場的聽眾是法國人怎麼辦?找個
懂中文和法文的翻譯者唄。
- 所以通常說 C / C++ Compiler,其實省略了目標平台的描述。
就算同樣是 C 編譯器,也不一定每種目標平台都支援,可以說
是不同的程式。
- 因為是書面翻譯,翻譯完的東西可以給會唸英文的人幫你唸,翻譯
者翻完就可以滾蛋了。
2. Python 等直譯式語言
類比:
- 現場口譯,從中文翻成英文。但只有當你講的時候我才一句一句
翻譯,就算你中文講稿上有,但講者沒講出口的字句,口譯者就
不會去翻譯。
- 聽眾語言(目標平台)不同,下一次的聽眾是法國人怎麼辦?找個
會從中文翻成法文的口譯者唄。
- 所以通常說某種語言的直譯器,其實省略了目標平台的描述。就
算同樣叫做 Python 直譯器,但他們懂的目標語言可能不同,可
以說是兩隻不同的程式。
- 因為是口譯,所以演講的時候翻譯者 (Python 直譯器) 一定要在場。
3. .NET / Java 等編譯成中介語言的編譯模式
類比:
- 書面翻譯後再口譯。我通通先翻成某種為了特殊目的而創立的語言,
例如邏輯語[1],然後再找個邏輯語的口譯來現場翻譯。
- 所以如果要從中文翻譯成英文,要做以下兩個步驟:
1. 先把中文翻譯成邏輯語 (Java Compiler / 你下 javac 時在做的事)
2. 把邏輯語翻譯成英文唸出來(Java Runtime / 你下 java Main 時在做的事)
- 聽眾語言(目標平台)不同,下一次的聽眾是法國人怎麼辦?找個會
把邏輯語翻成法文的譯者唄。
- 所以我們說 Java / .NET 執行環境,其實省略了目標平台的描述。
就算同樣叫 Java 執行環境,他們懂的目標語言可能不同,可以說是
不同的程式。
- 因為某種程度上來說也是口譯,所以翻譯者 (Java Runtime) 一定要在場。
[1]: https://zh.wikipedia.org/wiki/%E9%80%BB%E8%BE%91%E8%AF%AD
至於這三種模式能不能跨平台,那就要看你怎麼去定義「跨平台」這件事了。
--
~ 白馬帶著她一步步地回到中原。白馬已經老了,只能慢慢地走,
'v' Brian Hsu 但終是能回到中原的。江南有楊柳、桃花,有燕子、金魚……
// \\ ( 墳 墓 )
/( )\ 但這個美麗的姑娘就像古高昌國人那樣固執。 【白馬嘯西風】
^`~'^
https://brianhsu.moe 『那都是很好很好的,可我偏不喜歡。』
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.151.199
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1525831828.A.C97.html
※ 編輯: brianhsu (60.251.151.199), 05/09/2018 10:17:34
... <看更多>