現在編程語言研究的前沿和熱門問題有什麼?
指針分析研究幾乎在每年的PL頂會必有的,據我所知,IBM, Google, Apple, Oracle等企業也對指針分析比較重視和偏愛,主要利用指針分析查錯,查安全漏洞等,由於是fundamental的研究,入手相對其他靜態分析稍難些,但是受重視,人才比較少,收益比較大。比如CGO這種編譯的會議(還算不錯吧,起碼是編譯專項領域的頂會了),指針分析的文章在2011,2013,2015都是best paper。
姚提到的那個(加州大學Ben的研究組,我算接觸過他吧,這個教授有點狂,但是水平是絕對有的,現在他不做c的指針分析了,弄Javascript了)指針分析是針對c語言的。
這裡最近有一篇oo的指針分析的最新綜述文章(oo的指針分析最近比較火),
http://yanniss.github.io/points-to-tutorial15.pdf
作者是oo指針分析的世界No.1專家了,這篇文章剛剛被貼到他的主頁,所以非!常!新!我掃了一下,有基本的指針分析介紹的東西,又有很多新的關於oo指針分析的內容,比如,當今java指針分析是怎麼處理reflection這種天生難題的。這個教授寫東西還是很易讀的,而且這種邀請文章不多見,我覺得對初學者上來就讀一些PL會議的文章強些,容易些。
作者主要來自ibm research,很多現在去三星research了。
PLT研究是個比較大的話題,個人覺得大致分為以下幾類。。,先主要談談Program Analysis
- Basic Theory:Type System, Lazy Evaluation等
- Program Analysis
- Compiler
- Program Verification
- Testing and Debugging
Program Analysis
這算是一個大分類,,包括指針分析、數據流分析、控制流分析、程序切片等等。當然不可避免會用到程序語言理論的東西。同時Program Analysis的技術也廣泛用於編譯優化、程序驗證等。
研究可分為Application和Theory,Application如針對動態語言(JavaScript,Python等)的靜態分析器,針對函數式語言的數據流分析工具等,Theory如某一類指針分析演算法的改進(流敏感與否、上下文敏感與效率的均衡)。
據我了解,UCSB的PLT Lab對指針分析的研究比較多。另外,很多程序分析問題可以轉化為解決CFL-reachability問題,它們複雜度一般是O(N^3)的,13年CUHK(還是HKUST?)的一個博士後提出了針對一類CFL-reachability問題的改進演算法,有望被用於Program Analysis的很多地方。
(註:已經有人在嘗試把該演算法用於LLVM的指針分析模塊了。)
提供幾個我關注的Lab鏈接吧(我貼的Lab不一定在業界很有名../)。為求客觀,推薦兩個最有影響力的會議:POPL,PLDI。另外,對函數式語言感興趣的加一個ICFP。。
NU PLT
UCSB PL Lab Projects
Robert Harper"s Home Page
Research in Programming Languages at the University of Maryland
http://www.cs.yale.edu/homes/shao/
...等等
單說一個很窄的領域:統一 Concurrent Separation Logic 和 Rely-Guarantee Deduction.
推薦閱讀:
※現在哪種編程語言需求量大?
※各個階段的python學習路線?
※函數式編程如何工程化?
※遊戲編程,變數命名用拼音可以嗎?
※函數式語言開發 GUI 是不是自虐?