OCaml 於
教學與研究
OCaml 具有深厚的數學基礎,一直以來與學術界有著密切的聯繫。世界各地的許多大學都有教授 OCaml,且關於 OCaml 的研究也日益增多。
還有更多學術機構教授 OCaml!
研究論文
了解 OCaml 程式語言和編譯器的理論基礎
將效果處理器回溯移植到 OCaml
效果處理器作為一種使用使用者定義效果進行模組化程式設計的機制,正逐漸受到重視。效果處理器允許以可組合的方式表達非本地控制流程機制,例如生成器、async/await、輕量級執行緒和協程。我們提出了一個設計,並評估了 OCaml 的全面高效效果處理器實作,OCaml 是一種工業級多範式程式語言。我們的實作致力於保持現有 OCaml 程式碼的向後相容性和效能特性。將效果處理器回溯移植到 OCaml 具有挑戰性,因為 OCaml 目前沒有任何非本地控制流程機制,除了例外之外。我們為 OCaml 實作的效果處理器:(i)對不使用效果處理器的全面巨集基準測試套件施加平均 1% 的額外負荷;(ii)與檢查堆疊的程式分析工具保持相容;以及(iii)對於使用效果處理器的新程式碼是有效率的。
K. C. Sivaramakrishnan、Stephen Dolan、Leo White、Tom Kelly、Sadiq Jaffer、Anil Madhavapeddy
擴展 OCaml 的 `open`
我們提出對 OCaml 的 `open` 結構進行和諧的擴展。OCaml 現有的結構 `open M` 會將模組 `M` 輸出的名稱匯入到目前的範圍。目前,`M` 必須是模組的路徑。我們建議擴展 `open` 以接受任意模組表達式,使其能夠簡潔地解決在撰寫 OCaml 程式時出現的許多現有的範圍相關難題。
Runhang Li、Jeremy Yallop
在空間和時間上限制資料競爭
我們提出一種新的共享記憶體平行程式語意,即使在存在資料競爭的情況下也能提供強大的保證。我們的本地資料競爭自由屬性保證程式的所有資料競爭自由部分都展現循序語意。我們提供了一個簡單的操作語意和一個等效的公理模型,並評估了 OCaml 程式語言的實作。我們的評估表明,在主流程式語言中,可以平衡易於理解的記憶體模型與合理的循序效能權衡(在 x86 上沒有額外負荷,在 ARM 上約為 0.6%)。
Stephen Dolan、KC Sivaramakrishnan、Anil Madhavapeddy
產業應用
好奇 OCaml 如何在產業中使用嗎?
前往我們的成功案例,了解企業如何使用 OCaml。