雖然這篇編譯器python鄉民發文沒有被收入到精華區:在編譯器python這個話題中,我們另外找到其它相關的精選爆讚文章
在 編譯器python產品中有14篇Facebook貼文,粉絲數超過5萬的網紅軟體開發學習資訊分享,也在其Facebook貼文中提到, 課程說明 程式語言如何在引擎蓋下工作?編譯器和直譯器之間有什麼區別?什麼是虛擬機器,以及JIT-編譯器?函數語言程式設計和指令式程式設計的區別又是什麼呢? 當涉及到實現一種程式語言時,有太多的問題了! 學校裡的 “編譯器課程 “的問題是,它們通常被表述為一些 “硬核火箭科學“,只適合高階工程師...
同時也有1部Youtube影片,追蹤數超過2萬的網紅Untyped 對啊我是工程師,也在其Youtube影片中提到,什麼是Bug? 她教電腦說人話 編譯器的發明 | Grace Hopper - The Queen of Code【她也懂電腦】#1 - 你知道電腦是怎麼聽懂人話的嗎?你知道編譯器是誰發明的嗎?你知道工程師口中常常講的bug是什麼嗎? Grace Hopper 葛麗絲·霍普 完全就是顛覆大眾對女性的...
「編譯器python」的推薦目錄
- 關於編譯器python 在 4Gamers編輯部 Instagram 的最佳貼文
- 關於編譯器python 在 凱心琳 — Untyped 對啊我是工程師 Instagram 的最佳解答
- 關於編譯器python 在 工具王 阿璋 Instagram 的精選貼文
- 關於編譯器python 在 軟體開發學習資訊分享 Facebook 的最佳貼文
- 關於編譯器python 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於編譯器python 在 91 敏捷開發之路 Facebook 的最佳貼文
- 關於編譯器python 在 Untyped 對啊我是工程師 Youtube 的最佳解答
編譯器python 在 4Gamers編輯部 Instagram 的最佳貼文
2020-11-22 14:56:24
Intel 於 SuperComputing 2019 發表oneAPI產業倡議,以建立一個開放、遵循標準、一致的程式設計模型,提供開發者於 CPU、GPU、FPGA 及其它加速器,自由選擇最佳硬體的可能性,並將其結合為「XPU」。 oneAPI 完成版產品將於 2020 年 12 月推出,可...
編譯器python 在 凱心琳 — Untyped 對啊我是工程師 Instagram 的最佳解答
2021-07-11 09:36:10
Link in bio 🔗 連假快樂!感謝各位支持,本頻道破500訂閱了~雖然在YouTube的世界算是非常少,但你們的每一個訂閱跟觀看讚好,我都非常珍惜非常感激!凱心琳我會繼續努力! - 你知道電腦是怎麼聽懂人話的嗎?你知道編譯器是誰發明的嗎?你知道工程師口中常常講的bug🐞是什麼嗎? Grace...
編譯器python 在 工具王 阿璋 Instagram 的精選貼文
2021-04-04 21:34:22
【#工程師之路】資工系vs資管系 到底哪裡不一樣? 常常有高中生用臉書問我「資管系、資工系到底有甚麼不同?」 今天,就要來帶大家一起解密啦✊! ✔資訊工程學系 資工系學的就是硬體、韌體、軟體、網路, 讀資工= 資管 - 管理 + 硬體 資工系通常不學管理學、經濟學、會計學、生產管...
-
編譯器python 在 Untyped 對啊我是工程師 Youtube 的最佳解答
2020-04-02 21:00:02什麼是Bug? 她教電腦說人話 編譯器的發明 | Grace Hopper - The Queen of Code【她也懂電腦】#1
-
你知道電腦是怎麼聽懂人話的嗎?你知道編譯器是誰發明的嗎?你知道工程師口中常常講的bug是什麼嗎?
Grace Hopper 葛麗絲·霍普 完全就是顛覆大眾對女性的刻板印象的例子。她發明了compiler,在電腦科學領域中有極大的貢獻,被稱為電腦科學之母。若是沒有Grace Hopper, 我們就不會有Java, C++, python 之類的程式語言了!除此之外,還在美國海軍中有很傑出的表現。連美國前總統歐巴馬都頒發給她總統自由勳章。快來聽聽葛麗絲·霍普的驚人事蹟吧!
【她也懂電腦】為響應國際婦女節而啟發的系列。證明電腦科學本不屬於男性專有,打破本不應存在的刻板印象。希望能讓更多人認識這些成就不可被藐視的電腦科學界的女英雄們,讓更多女孩願意擁抱這個也屬於我們的電腦科學世界。
「女性不是電腦科學的外來者,更不是新來的。而我們寫下了電腦科學的歷史,更是使其進步不可或缺的動力。」
#SheInspiresMe #InternationalWomensDay #她也懂電腦 #國際婦女節 #GraceHopper
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
-
感謝各位支持,本頻道破500訂閱了~雖然在YouTube的世界算是非常少,但你們的每一個訂閱跟觀看讚好,我都非常珍惜非常感激!凱心琳我會繼續努力!
#500subs
歡迎留言告訴我你的想法,或是你想認識的厲害女性唷!
每(隔週)週四晚上9點更新,請記得開啟YouTube🔔通知!
-
【相關連結】
The Extraordinary Life of the 'Queen of Code': A Grace Hopper Biography
(https://interestingengineering.com/the-extraordinary-life-of-the-queen-of-code-a-grace-hopper-biography)
Grace Hopper Nanosecond Visual Aid (https://youtu.be/s5XMoLgZZ38)
【What I used to make this video】
個人電腦:Apple MacBook Pro [https://amzn.to/2HKgI2T]
拍攝錄音錄影: iPhone X [https://amzn.to/3c0s6Fu]
相機: Canon 80D [https://amzn.to/2VVmiYz]
錄音: Rode [https://amzn.to/3aqnzL2]
鍵盤: Logitech MX Keys Wireless Keyboard [https://amzn.to/3awqi5L]
【愛屋及烏】
Facebook 臉書粉專 👉 [https://www.facebook.com/untyped/]
Instagram 👉 [[https://www.instagram.com/untypedcoding/]
合作邀約 👉 untypedcoding@gmail.com
-
Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的女工程師。
-
This video contains affiliate links, which means that if you click on one of the product links, I'll receive a small commission.
圖片影片音效:[giphy.com] [pngwave.com][freesound.org]
編譯器python 在 軟體開發學習資訊分享 Facebook 的最佳貼文
課程說明
程式語言如何在引擎蓋下工作?編譯器和直譯器之間有什麼區別?什麼是虛擬機器,以及JIT-編譯器?函數語言程式設計和指令式程式設計的區別又是什麼呢?
當涉及到實現一種程式語言時,有太多的問題了!
學校裡的 “編譯器課程 “的問題是,它們通常被表述為一些 “硬核火箭科學“,只適合高階工程師。
此外,經典的編譯器書籍從最不重要的話題開始,比如詞法分析,馬上就深入到形式化語法的理論方面。而到了實現第一個 Tokenizer 模組的時候,學生們就會對這個主題失去興趣,沒有機會真正開始實現一種程式語言本身。而這一切都被分散到整個學期的標記器和 BNF 語法的混亂中,而沒有理解程式語言的實際語義。
我相信我們應該能夠在4-6個小時內建立並理解一個完整的程式語言語義( full programming language semantics ),內容直奔主題,在現場編碼課程中以配對程式設計的方式展示,並以可理解的方式描述。
在 “解釋要點 “課程中,我們特別關注執行時期語義( runtime semantics ),並為一種非常類似於 JavaScript 或 Python的程式語言建立一個直譯器。
https://softnshare.com/essentials-of-interpretation/
編譯器python 在 Taipei Ethereum Meetup Facebook 的最佳貼文
📜 [專欄新文章] [zkp 讀書會] Cairo 語言介紹
✍️ NIC Lin
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Cairo 是 STARK 證明系統的其中一個編程語言,讓開發者能透過 Cairo 來使用 STARK,撰寫效能更高的 Dapp
Photo by Simon Berger on Unsplash
Warning:本篇會保持在 high level 的介紹,實際深入的部分請見文內附上的文檔或是官方開發者文件
背景介紹
建構於密碼學的零知識證明能提供計算的隱私性,但同時在區塊鏈生態系也被用來提升 Scalability — 我可以用 10 秒的運算資源來驗證原本耗費 1000 秒運算資源的計算過程
如同更多人熟悉的 SNARK,STARK 也是一個零知識證明的證明系統,但當前的 STARK 著重的是在 Scalability ,而非大家比較習以為常零知識證明提供的隱私性特質
其實目前基於 SNARK 的 Rollup 項目,例如 zkSync、Loopring、Aztec、zkopru,除了 Aztec 外,其他都是利用 SNARK 來增加 Scalability — 這些 Rollup 上資料都還是公開、沒有隱私性的
StarkWare 是目前唯一基於 STARK 的開發團隊
STARK 要加上隱私保護不會太難,只是 StarkWare 還沒有把這項功能放在未來規劃中
Cairo 簡介
標榜為圖靈完備的零知識證明系統語言,Cairo 對原本熟悉 Solidity 的開發者來說還是會感到比較難上手和陌生的。再加上套件庫還不夠充足,目前支援的雜湊函式是 Pedersen,數位簽章演算法是 ECDSA(相對於 SNARK,EdDSA 的效能反而比較差所以沒有支援)。
但 Cairo 還在早期開發的階段,相信開發體驗會越來越好的。
另外需要注意的是作為一個證明系統,會有 Prover 和 Verifier 的角色。而 STARK 的 Verifier 是公開的,但 Prover 軟體預計會有 License 保護。Prover 一般情況下不得用於商業用途,除非將 proof 上傳至官方的 Verifier。
最後要提及的是,第一版的 Cairo 是設計來方便開發者將 Dapp 的運算遷移至鏈下。不同於 Rollup,這個鏈下只會有它自己一個 Dapp。這個 Dapp 的項目方自己維護自己 Dapp 的 state。( Rollup 則是 operator 維護所有 Dapp 的 state,Dapp 開發者不需自己操煩)
這可能有點難懂。如果你有在寫 Solidity,想像一下今天你在合約要用到合約裡宣告的 storage 變數時,你要自己提供 merkle proof 上來,證明這個storage 變數真的是這個值。這個就是開發者要自己維護 state 的意思。
而第二版的 Cairo 則是 StarkNet 裡使用的 Cairo(第一和第二版是不同編譯器),這版的 Cairo 就是作為 Dapp 在 Rollup 開發所使用 — 開發者可以在合約裡宣告變數,變數的值不需開發者維護,可以直接假設存在。
註1:StarkWare 不喜歡 Rollup 這個詞,他們覺得 Data Availability 的需求是一段光譜:不一定得要把 data 全都送上 L1,中間有其他方式可以做不同層級的 Data Availability。
註2:第一版和第二版實際上在官方版本裡是 0.0.1 及 0.0.2,在撰文當前最新版即是 0.0.2
官方網站:https://www.cairo-lang.org
開發者文件:https://www.cairo-lang.org/docs/
開發環境
Cairo 有提供像是 Remix 的瀏覽器 IDE:playground。裡面提供各種範例練習和挑戰,除了可以編譯,還可以直接生成並上傳 proof。
註:但有些功能還是沒辦法在 playground 裡使用,例如要給你的程式 custom input 時。這時候只能在本地端開發才能使用這個功能。
開發 Cairo 要先安裝python,我將開發者文件整理出來的資料統整在這個 hackmd 文檔裡:https://hackmd.io/w690dpAQTsKeKZv3oikzTQ
裡面包含簡介、設置本地開發環境以及 Cairo 基礎(因為篇幅原因,所以不將內容複製到這裡)
註:我把開發者文件裡的代碼整理到這裡:https://github.com/NIC619/cairo_practice/tree/master/practices
如果不想在研究開發者文件過程中,還要自己手動拼湊裡面例子的話,可以直接用整理好的代碼來執行。同時 repo 裡還有包含一些額外自己測試 Cairo 功能的範例。
深入 Cairo
在那份 hackmd 文檔裡的開頭,可以連結到第二部分 — 深入 Cairo 的部分。裡面也是從開發者文件裡擷取出來我覺得比較重要的部分。如果你要讀開發者文件的話,我建議從 Hello Cairo 開始,它會從例子切入,會比較好知道 Cairo 怎麼使用。接著如果要更深入了解,再去讀 How Cairo Works。
StarkNet Cairo
第二版的 Cairo 其實功能和第一版的 Cairo 是差不多的,所以不必擔心在開發者文件裡學到的 Cairo 在 StarkNet 版本會不能用或差很多。在讀完 Hello Cairo/How Cairo works 後,就可以接著看 Hello StarkNet。會很順利的切換到 StarkNet 版本的 Cairo。
註1:我整理的文檔裡是按照第一版 Cairo 所寫的
註2:如果你從開發者文件一路看下來,體驗過非 StarkNet 版的 Cairo,那你在體驗 StarkNet 版的 Cairo 時一定會發現這更像一般智能合約的使用方式 — 你可以用 view 函式查詢 storage 變數,可以用 external 函式去執行合約(非 StarkNet 版本不是這樣操作 Dapp 的,這邊因為篇幅原因沒有詳細介紹)。
非常建議嘗試兩種版本的 Cairo,你會知道 1. 操作一個單獨在 L2 的 Dapp 和2. 操作與其他 Dapp 共存在 Rollup 上的 Dapp 的不同。這對了解 L2 怎麼運行、需要哪些資料、為什麼需要這些資料非常有幫助。
0.0.2 版的 StarkNet Cairo 目前還缺少一些功能:
函式還沒辦法宣告陣列或 struct 型態的參數
合約和合約之間還沒辦法互動
L1 沒有辦法讀取到 L2 的資料,L2 也沒辦法讀取到 L1 的資料。如果要建立跨 L2 Bridge,這個功能非常重要。
補充及個人心得
STARK 的 proof size 相比於 SNARK 系列的 proof size 大很多,又其證明所包含的交易數量對 proof size 和驗證時間的影響不大,所以把很多筆交易一併做一個 proof 會是對 STARK 非常有利、節省成本的方式(SNARK、STARK 比較表)。但這同時也是一個缺點,如果你的 Dapp 或 Rollup 的 TPS 不高,那就只能等更久時間搜集多一點的交易,要不然就只能提高成本來維持驗證 proof 的頻率。
StarkWare和 zkSync 一樣都有 Rollup 宇宙的概念( Rollup 宇宙的用詞並不精確,因為在他們的宇宙中不會所有子鏈都是 Rollup,而是會有依照 Data Availability 程度不同所區分的子鏈,像是 Validium、zk Porter 的設計),個人覺得能夠有(針對 Data Availability 程度的)選擇是會比只有一個選擇(完全 Data Available) 還好的方式,但實際上的可行性就要等其團隊釋出更多的資訊。
在 Rollup 越趨成熟的情況下,能夠提供快速跨 Rollup 服務的流動性提供者的角色會越來越重要。zk Rollup(StarkNet、zkSync、etc…)比 Optimistic Rollup (Optimism、Arbitrum、etc…)有著短上許多的 finalize 時間,這對降低流動性提供者的風險有很大的幫助,但目前 zk Rollup 支援合約功能甚至 L1 <-> L2 互動的完成度都比 Optimistic Rollup 還低上許多。短期內快速跨 Rollup 的服務應該還是侷限在 Optimitic Rollup 之間。
abbrev
[zkp 讀書會] Cairo 語言介紹 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
編譯器python 在 91 敏捷開發之路 Facebook 的最佳貼文
看著之前用 PyCharm 重構 Python unit test 示範影片,感覺就好爽。
https://www.youtube.com/watch?v=3giSsoBPEU8&feature=youtu.be&ab_channel=JoeyChen
2020 年的最大感想之一,就是 Python 真是個不錯的語言,相見恨晚。如果開發人員本身就具備如何把產品設計得很乾淨、簡單、嚴謹,那 Python 既可以享受 Java/C# 強型別語言的 IDE 好處(透過 type hint),也可以有動態特性的彈性(例如參數個數、型別的不受限制)。
而且,Python 的測試超級好寫!也可以整理地非常乾淨,就像講話一樣的描述需求情境、規格。
Python 越來越多人在用,很多人(駕駛員問題,而非機體問題)卻濫用它的彈性,寫出很糟糕、很難偵錯、很容易出問題的程式碼。有單元測試當保護網,可以更安心建構 enterprise application 等級的系統,也可以安心的重構,減少缺乏編譯器這一層基本保護的風險。
※ youtube 給他訂閱起來呀!