看板 PLT 關於我們 聯絡資訊
※ 引述《noctem (noctem)》之銘言: : 我直到今天才發現這個板。蠻高興在這邊看到對 programming : language 有興趣的人。 : 我現在在中研院資科所工作。做研究但沒有人可以討論,實在 : 是蠻難的。因此我很想要聘幾位對相關題目有興趣的朋友, : 一起來做些事情。 原來你還是在研究程式語言,就我的認識,穆老師是在台灣對於程式語言 研究,特別是函數語言最為執著努力的一位了。 從上大學不久就開始了吧? 十年如一日的研究,真是不得不敬服。 : 在學生時代我做的是 program derivation (有人知道這是什麼 : 嗎?), 現在大概凡是 programming language 有關的題目都 : 不挑了。最近我在做的東西和 XML 有關:我們想開發一個能 : 使用少量記憶體處理 XML 的 functional language. 當然目前 : 還沒到「語言」的層次,這個階段的想法是:我們需要一種奠基 : 在 lazy evaluation 之上,但是稍作修改的 evaluation 方式。 其實我不太了解 program derivation 和 meta-programming 能有 什麼不同,最終都還是運用程式語言或工具生產軟體的方法。 而處理 XML 應該跟處理程式語言很接近,例: <a b=c> <d e=f g=h> <i>j</i> </d> </a> => 轉換成 C-like syntax: a(b = c) { d(e = f, g = h) { i() { "j" } } } => 轉換成程式語言: obj a(b) = { obj d(e, g) = { obj i = { "j" } } } a(c) { d(f, h) } 以上是用我設計的程式語言 (未發表) ,不過應該滿容易理解的,就 不做額外說明了。 也就是說,只要透過一個轉換程式, XML 就可以代換為某些其他程式 語言,從而直接利用其他語言的編譯或解譯程式來處理。 麻煩主要在於完整的 XML 相關規格很繁瑣,若要做全套會有點辛苦。 當然若是要處理 pattern matching 做一些抽象化工作的地步,就會 困難得多。 XML 處理這部分,一般是在 information retrieval 的領域中做的, 用程式語言來做,可能不是殺雞用牛刀,就是很可能實用意義不夠。 不過,若是想要做點什麼東西,配合 XML 的特性來設計,或是以此 做為起點,應該還不錯。 至於說少量記憶體,嗯,本來就可以在需要時才處理 XML node, 只是 由於無論如何都要做一次 parse, 能省下的時間有限,在時間空間的 考量上,現在一般都傾向浪費空間來增進效能,所以商業模組才多是 如此設計。 : 夏天之後我可能會開始另一個計畫:設計一個有「反函數」的 : functional language. 是否有可能設計一個語言,讓你能先 : 定義一個函數 f, 然後說「g 是 f 的反函數」?這樣的語言能 : 玩出什麼花樣呢? 我不理解,先不談可能性,但如果實作出來了,可以怎麼應用呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.173.26