現在編程語言研究的前沿和熱門問題有什麼?


指針分析研究幾乎在每年的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會議的文章強些,容易些。

還有一篇綜述稍舊了些,也是oo指針分析的,http://manu.sridharan.net/files/aliasAnalysisChapter.pdf
作者主要來自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 是不是自虐?

TAG:編程語言 | 編程 | 計算機科學 | 函數式編程 | 編譯原理 |