[情報] Types and PL 高雄線下讀書會

看板PLT (程式語言與理論)作者 (一卡)時間9年前 (2015/11/21 15:55), 9年前編輯推噓10(1001)
留言11則, 8人參與, 最新討論串1/1
主題: 幾位高雄的朋友將在 11/28 開始舉辦 TaPL(Types and Programming Language) 讀書會, 如果對程式語言設計原理原則,型別系統有興趣的朋友,歡迎一起來讀書。 除了線下的讀書會,也會同時進行線上聊天室的討論與分享,讓不在高雄但有興趣的朋友 也有機會參加並分享自己的看法。 預定第一次聚會先至少讀完 untyped lambda system。 書中實作採用的是 Ocaml 這個程式語言,有興趣的朋友也可以改用其他語言實作。 沒有書的朋友,也可以參考放在 github 上的 issue 或是參考文獻,相關連結放在最下 方。 目前還有蠻多事項需要討論與決定,歡迎上 irc #cschat.tw 或透過 github 發 issue 參與討論。 地點:彩色巴黎 / 高雄市左營區富民路391號(暫定) 時間:2015-11-28 14:00 ~ 17:30 報名連結:http://tapl.kktix.cc/events/d79d3108 參考連結: github repo 存放相關文獻或 issue https://github.com/cschat-tw/StudyGroup-TAPL/issues -------------------------------------------------------------------------- 好像還有什麼東西沒補充的感覺,但暫時還沒想到,上禮拜在 irc 提說想要在高雄辦場 TaPL 的讀書會,馬上有熱情的大大們幫忙,謝謝大家。 希望之後參與人數能變多,然後去借個場地來舉辦。 這本書基本上是在討論程式語言中,如何實作型別系統 (type system) 以及相關數學理 論,從最基本的 typechecker、error handle、跟 oop 相關的 subtype 一路介紹到 Higher-Order system,可以算是一本 type system 的入門書。 讀這本書你不需要懂 compiler 怎麼實作,但需要學過 Ocaml。 -------------------------------------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.16.4 ※ 文章網址: https://www.ptt.cc/bbs/PLT/M.1448092513.A.68B.html

11/21 16:07, , 1F
推推推 XD
11/21 16:07, 1F
※ 編輯: drm343 (36.236.16.4), 11/21/2015 16:47:37

11/21 18:23, , 2F
推~~
11/21 18:23, 2F

11/21 23:33, , 3F
推~~
11/21 23:33, 3F

11/22 11:06, , 4F
借轉
11/22 11:06, 4F
suhorng:轉錄至看板 Programming 11/22 11:06 suhorng:轉錄至看板 Programming 11/22 18:04

11/23 16:26, , 5F
推~~
11/23 16:26, 5F

11/27 08:43, , 6F
推推~
11/27 08:43, 6F

11/27 12:28, , 7F
是 w 大!
11/27 12:28, 7F

11/27 16:50, , 8F
是 w 前輩,推推
11/27 16:50, 8F

11/28 12:19, , 9F
11/28 12:19, 9F
今日結束了,感謝大家參與,這邊下收今天的一些心得跟事件。 先說跟這本書無關的部份,以後應該會固定一個月一次,地點也會更換, 歡迎各位提供地點,目前預計下次可能會在都提咖啡或是 k square 等地 點進行,考量點有下述三點。 1. 場地費在 1000 元以內,以目前的報名情況來說,之後的參加人數應該不 可能超過 10 人,所以不太可能去租借 2000 元以上的場地。 2. 必須能夠讓我們吵鬧而不會影響到附近客人,或是被附近客人影響到,特 別是介紹或講解到一半時,可能會講的比較興奮什麼的。 3. 下次開始會需要投影機跟擴音機,要讓北部的大大也有機會一起參與討論, 並且分享自己的看法。 然後建議參與者準備一本書,最好順便學一下 Ocaml,如果比較熟 Haskell 也可以參考下面的非官方實作,用 Ocaml 建議安裝 utop 這個工具,是個 不錯直譯器。 Ocaml 版的官方教學程式碼: http://www.cis.upenn.edu/~bcpierce/tapl/checkers/ Haskell 版的讀者教學程式碼: https://code.google.com/p/tapl-haskell/ 如果需要分享一些 type rule 而需要輸入數學符號時,可以使用下面這個 網址提供的工具,它可以產生分享連結,覺得網址太長可以縮網址。 http://goo.gl/laCai4 ================================================================= 大致上是這樣了,下面說說一些跟書有關的內容。 這本書第一章介紹的是歷史,不過這部份我基本上直接跳過了,有興趣的人 可以自行閱讀,也許下次有沒參加過讀書會的人參加時,可以再拿這章出來 簡單介紹一下。 第二章講的是書中用到的數學知識,基本上就是集合論那一塊,直接跳過還 是可以讀的,但書中一些需要用到數學的地方可能會卡住。 第三章開始會介紹什麼叫作 untyped system,這不是說這個系統沒有 type 的意思,而是指不做 type check。 後續會開始介紹什麼叫作 simply type system,這是最簡單的型別系統,據 說只要會這個,簡單變形一下就能得到 haskell 使用的 hindley-milner system 了,但我自己對 HM system 以及 simply type system 沒這麼深入的了解, 所以還不知道這部份要怎麼實作。 介紹完 simply 就會開始介紹 subtype system,這個跟 oop 有關,以後讀到 這邊可以做更深入的分享,之後會是 Recursive Types 等等的系統,有興趣的 人可以上 TaPL 的官網或其他地方參考看看目錄,這部份就不多說了。 今天還沒有比較深入的探討,所以先補上兩個有講到的問題。 Q: 為什麼這本書用 Ocaml 而不是 Haskell 當實作範例用的語言? A: 可能是作者比較熟 Ocaml ,理論上可以用任何語言實作,但最終建議使用有 GC 跟 pattern match 的語言會比較簡單。 -------------------------------------------------------------------- Q: 根據書中 48、49 頁的程式碼,如果執行 eval TmSucc(info, TmTrue) 則 eval1 應該會回傳 TmSucc(info, TmTrue),然後 eval 又會跑去執行 TmSucc(info, TmTrue), 於是變成無窮迴圈,為什麼實際實行結果卻沒有發生這樣的狀況? (* eval 函數定義 *) let rec eval t = try let t' = eval1 t in eval t' with NoRuleApplies -> t A: 因為 eval1 計算 TmTrue 時會產生 NoRuleApplies 使程式停止計算。 -------------------------------------------------------------------- 我比較有印象的大致上是這樣了,其他我沒提到的部份就要請其他有參加的人 補充了。 ※ 編輯: drm343 (36.236.18.75), 11/28/2015 23:20:25

11/28 23:54, , 10F
天吶太強了超級用心膜拜!!!!!!
11/28 23:54, 10F

11/28 23:57, , 11F
關於 why ocaml 的問題,可以參考 Chapter 4 第一段的內容
11/28 23:57, 11F
文章代碼(AID): #1MK2DXQB (PLT)
文章代碼(AID): #1MK2DXQB (PLT)