"แอ็ดส์เคอร์ ไดก์สตรา" ได้ให้ คำคมที่ลึกซึ้งกินใจ #โปรแกรมเมอร์ ว่า
“If debugging is the process of removing software bugs ,then programming must be the process of putting them in.”
แปลเป็นไทยได้ว่า
“ถ้าการดีบักคือ กระบวนการเอาบั๊กซอฟแวร์ออกไปละก็ …
เมื่อนั้นการเขียนโปรแกรมต้องเป็น กระบวนการใส่บั๊กเข้าไปแน่ ๆ”
++++รู้ไว้ใช่ว่า ใส่บ่าแบกหาม++++
ประวัติ Edsger Dijkstra (แอ็ดส์เคอร์ ไดก์สตรา)
เขาเป็นนักวิทยาศาสตร์คอมพิวเตอร์ชาวดัชต์
ที่สร้างคุณานุประโยชน์ แก่วงการคอมอย่างมาก
เกิดเมื่อค.ศ. 1930 และเสียชีวิตด้วยโรคมะเร็งเมื่อ 6 ส.ค. 2002
รวมอายุได้ 72 ปี
เขาจบดอกเตอร์ทางคณิตศาสตร์และฟิสิกส์ ที่ University of Amsterdam เมื่อปี 1959
ปี 1972 ได้รับรางวัล "ACM Turing Award"
และปี 1984 ได้เป็นศาสตราจารย์ที่ Uninversity of Texas at Austin
ผลงานของเขา ที่คนเรียนสายคอมทุกคน ต้องรู้จักคือ
“Dijkstra’s algorithm”
ตำราเรียนอาจแปลว่า "ขั้นตอนวิธีของไดก์สตรา" (คุ้น ๆ ใช่มั๊ยละ)
มันเป็นวิธีแก้ปัญหาเรื่อง shortest path หรือก็คือหาระยะทางสั้นที่สุด จากจุดหนึ่งไปยังจุดใด ๆ ในกราฟ นั่นเอง
(ถ้าไม่รู้จักแสดงว่าโดดเรียน และทำข้อสอบไม่ได้นะ)
ผลงานดังอีกชิ้น ที่เราต้องเคยเรียนคือ
การแก้ปัญหาการกินอาหารของนักปราชญ์
หรือชื่อภาษาอังกฤษคือ "dining philosophers problem"
+++ส่วนผลงานดังด้านอื่น ๆ+++
-เป็นหัวหน้าทีมคิดค้นระบบ OS ที่เรียกว่า “THE” Multiprogramming System
-คิดค้นหลักการ Semaphore
-เป็นผู้เขียนบทความ “Go To Statement Considered Harmfull” จนปลุกกระแสต่อต้านคำสั่ง Goto ในยุคนั้น
-เขียนหนังสือ “A Discipline of Programming” ซึ่งรวบรวม Algorithms ที่ตัวเขาเองคิดค้น
-แต่งหนังสือร่วมกับ C. A. R. Hoare Ole-Johan Dah ชื่อหนังสือคือ “Structured Programming”
นอกจากนี้แล้ว เขายังเป็นผู้บุกเบิกศาสตร์ทางคอมหลายเรื่อง ยิ่งคนจบคอมมา ล้วนเคยเรียน หรือเคยอ่านผ่านตามาทั้งสิ้น ได้แก่
Distributed Computing, Compiler Writing, Heuristics, stream, Computer Hardware Design, Dining Philosopher, Software Configuration Management, Sorting Algorithms, Fast Fourier Transform, Deadlock, Concurrent Programming, Garbage Collection, Memory Design, AI: Pattern Matching, Graph Theory, Scope of Variables, Transaction และอื่นๆ อีกมากกว่า 1,000 บทความ
อ่านเพิ่ม -> http://www.patanasongsivilai.com/…/การเขียนโปรแกรม-คือการใ…/
「compiler design」的推薦目錄:
- 關於compiler design 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳解答
- 關於compiler design 在 國立陽明交通大學電子工程學系及電子研究所 Facebook 的最佳貼文
- 關於compiler design 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於compiler design 在 Introduction to Compiler Design by Prof. Yi-Ping You, fall 2019 的評價
- 關於compiler design 在 Help with Compiler Design [duplicate] - Stack Overflow 的評價
compiler design 在 國立陽明交通大學電子工程學系及電子研究所 Facebook 的最佳貼文
Synopsys招募暑期實習生
美商新思科技Synopsys招募暑期實習生,歡迎 #電機電子資工背景的學生盡速投遞。
關於新思科技 (Synopsys)
新思科技名列美國標普500指數成分股,長期以來是全球排名第一的IC電子設計自動化(EDA)創新公司,也是排名第一的IC介面IP供應廠商,專門提供「矽晶到軟體(Silicon to Software™)」最佳的解決方案。不論是針對開發先進半導體系統單晶片(SoC)的設計工程師,或正在撰寫應用程式且要求高品質及安全性的軟體開發工程師,新思科技都能提供所需的解決方案,以協助工程師完成創新、高品質並兼具安全性的產品。更多詳情請造訪: https://www.synopsys.com/ 。
新思科技1991年在台灣成立分公司,並於2012年底合併思源科技,目前員工總人數已達800位,其中有超過400位的研發人才,是在台灣的跨國軟體企業中,擁有最大規模研發團隊的公司之一。新思科技持續為台灣培養半導體設計軟體人才,加速國內廠商產品開發與問市的時程,強化台灣在半導體國際市場的競爭力。
#實習時程:2020.7.8-2020.9.8
#招募對象:國內外升大四(含)、碩博在學生,資工、電機電子尤佳
#實習地點:臺北、新竹地區
#實習類別:
1. Software Intern- EDA (Taipei/ Hsinchu)
2. Software Intern- Machine Learning (Taipei/ Hsinchu)
3. Software Intern-Web Design (Taipei)
4. SRAM Compiler Intern (Hsinchu)
#特色:
1. 參與世界級軟體開發並與全世界菁英合作
2. 完整與嚴謹的暑期實習project與一對一mentor帶領,保證讓您收穫滿滿
3. 表現優異有優先轉正的機會
#申請方式:
1. English resume & BS & MS transcripts are required. (***請務必將三個檔案合併為一個pdf檔)
2. Please email to [twcampus@synopsys.com ], Email subject 【實習_OO大學XX系_王大明】(若為申請Web design or SRAM Compiler請註記)
3. 申請類別為EDA/ ML者請務必註記申請地點(可多選),並請註明從何得知此實習資訊
If you have any further questions or concerns, please don’t hesitate to contact me.
All the best,
Simin Liao
Campus Recruiter, Synopsys
Email: siliao@synopsys.com
compiler design 在 Taipei Ethereum Meetup Facebook 的最佳解答
📜 [專欄新文章] 2019 台北以太坊社群回顧
✍️ Juin Chiu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
很快地,2019 年過去了,台北以太坊社群(TEM)也滿 3 歲了,過去一年,TEM 完成了許多重大的里程碑:
舉辦台灣最大的區塊鏈技術研討會 Crosslink
主持台灣開源界最大的研討會 COSCUP 的區塊鏈議程
參加世界最大的區塊鏈技術研討會 DEVCON
Medium 專欄累積 30+ 篇優質文章
Youtube 頻道累積 50+ 個技術演講
在這篇文章中,我們首先來審視 2019 年以太坊取得重大進展的技術:以太坊2.0與零知識證明,接著再回顧 TEM 於 2019 的優質專欄文章。
*本文由 Juin Chiu 與 Chih-Cheng Liang 共同整理
以太坊重大進展
以太坊2.0的信標鏈
對一般大眾最重要最能吸收的事情大概是 Eth2.0 的信標鏈有測試網路了。透過儀表板網站 www.beaconcha.in 可以看見 Prysmatic Labs 團隊的測試網路的動態。細節很多,但本文就只談這張圖最上面有出現的東西。
在 Eth2.0 沒有挖礦和礦工了,取而代之的是抵押以太幣的驗證者(Validator)來成為資料的寫入者。因此也沒有「區塊時間」這個詞了,新協定以 12 秒為一個「時段」(Slot),信標鏈隨機分配驗證者在指定的時間點產出區塊。在 32 個時段的時間,稱為一個「時期」(Epoch),約 6.4 分鐘,信標鏈會處理驗證者的賞、罰、進、出。在儀表板的左上角可以看到 Epoch 與 Slot 的數字,代表距離最早最古老的區塊多久了。
要怎麼成為驗證者呢?首先要在以太坊 1.0 主網路的抵押合約上,送出一筆交易(在信標鏈測試網路則是送到 Goerli 測試網路)。這筆交易會註冊驗證者的公鑰,並且存入押金(在正式網路是 32 ETH ,測試網路則是 3.2 ETH)。送完之後就排隊等待信標鏈激活驗證者,驗證者就需要開始執行信標鏈分配的任務了。在畫面中間可以看到左邊是 27539 個活躍的驗證者,右邊則是有 4623 個排隊進入的。
在這種基於押金的網路,系統的威脅來自於攻擊者買通大量驗證者,送出矛盾訊息,致使於系統不同節點無法取得共識,鏈資料不可挽回的分叉為兩條。因此系統累積的總押金越多,代表攻擊者成本越高。畫面最右上角左邊即為總押金,右邊為平均一個驗證者的餘額。
假期間和親朋好友一起跑一個驗證者節點,是個活絡氣氛的好活動。要做到這件事,目前 Prysm 客戶端有最友善的介面,請點 連結。程式也用 Docker 包好了,免煩惱安裝。
也記得 Eth2.0 協定有 9 個團隊 用不同程式語言實作。例如:有 Python 語言的客戶端 Trinity ,以及 Rust 語言客戶端 Lighthouse。基本上不用擔心找不到自己喜歡的程式語言的實作。
零知識證明
2019 年,零知識證明的理論與應用也突飛猛進,Kimi Wu 剛好寫了一篇很棒的文獻調查。
前年底提出的 zk rollup,目前由 Matter Labs 在開發,Matter Labs更在上個月(2019/12)發表了 ZK Sync,解決了因為產生證明(proof)而延伸的延遲問題。
此外 Iden3 跟 ConsenSys 也有 zk rollup 的專案。在以太坊研究論壇有基於 zk rollup 的一個提案,是可以達到 匿名性的 zk rollup。
Semaphore是一個基於零知識證明的一個訊號系統,發送者可以不揭露身份的狀況下廣播任何訊息(an arbitrary string)。 Semaphorejs 延續 Semaphore 的核心概念,並將整個概念更加完整化,從前端網頁到後端服務。
這兩年才發表的 zk-STARKs,也在去年年初跟 0x 合作,推出基於 zk-STARKs 的 去中心化交易所。
在技術上,去年下半年有新的論文,使用 DARK compiler 可以讓 SNARKs 達到公開性(Transparent)。還有 MARLIN, SONIC, PLONK 等可通用且可更新的可信設定(trusted setup)。STARKs 的 FRI 驗證方式也默默地跟 SNARKs 做結合。(東西越來越多,根本看不完 QQ)
零知識證明在區塊鏈的重要用途就是「擴展」和「隱私」。技術上的進展,一般可以觀察證明方產出證明的時間、證明的資料大小、驗證方驗證的時間、需不需要可信設定、可信設定有什麼限制、以及抵抗量子電腦的能力。
社群專欄優質文章
Crossslink 2019
Crosslink 2019 Taiwan|以太坊 2.0 的未來藍圖及挑戰
Crosslink Recap: Design pattern: build your first profitable DApp and smart contract
Private key security and protection / 私錀的安全與保護 — Tim Hsu
Crosslink 2019 Taiwan|LibraBridge: 橋接 Libra 與 Ethereum
Aragon Fundraising:下一代的去中心化募資平台
The next generation Ethereum Virtual Machine — Ewasm VM
libp2p — 模組化的點對點網路協議
教學(Tutorial)
一分鐘做出自己的代幣購買App
Web3 Java 開發:用 Geth、Ganache 及 Infura 測試和 Smart Contract 互動
Let’s Capture The Flag! Etheruem CTF Tutorial 從零開始破解智能合約漏洞!
Your First Transaction on Facebook Libra — 動手玩 Libra
ELI5! 區塊鏈到底在幹嘛?
共識協定(Consensus)
Casper FFG:以實現權益證明為目標的共識協定
Casper FFG 與 Casper CBC 的瑜亮情結
若想搞懂區塊鏈就不能忽視的經典:PBFT
密碼學(Cryptography)
Ethereum RNG (RANDAO & VDF)
深入瞭解 zk-SNARKs
瞭解神秘的 ZK-STARKs
隱私性與匿名性(Privacy and Anonymity)
新一代加密貨幣Grin和MimbleWimble區塊鏈解析
Monero.門羅幣 隱匿交易的基礎介紹
隱私、區塊鏈與洋蔥路由
資料可得性(Data Availability)
Data Availability on Ethereum 2.0 Light Node
Fraud and Data Availability Proofs
點對點網路(p2p Network)
連Ethereum都在用!用一個例子徹底理解DHT
針對DHT的花式攻擊與精簡對策
智能合約(Smart Contract)
深入解析Solidity合約
Upgradable Smart Contracts using zos
Reason Why You Should Use EIP1167 Proxy Contract. (With Tutorial)
去中心化金融(DeFi)
DeFi 項目《Uniswap》完整解析(一)Uniswap 是什麼?
解析 DeFi 項目《Uniswap》(二)Uniswap 如何使用?
去中心化身份(DID)
我們與「身份自主」的距離
其他(Miscellaneous)
論言論自由
作為負債的控制
0x 黑客松 — 獲獎作品回顧與分析
技術解析台灣交易所BitoPro駭客攻擊
總結
2019 是個樸實無華但充實的一年,除了在底層技術方面有所進展,在應用方面,例如去中心化金融(DeFi)與去中心化身份(DID),也逐漸獲得大眾的興趣,期待 2020 年區塊鏈能為這世界帶來更多驚奇!
2019 台北以太坊社群回顧 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
compiler design 在 Introduction to Compiler Design by Prof. Yi-Ping You, fall 2019 的推薦與評價
Introduction to Compiler Design by Prof. Yi-Ping You, fall 2019 - GitHub - iamch15542/Compiler_Design: Introduction to Compiler Design by Prof. ... <看更多>