OCaml 於教學與研究

OCaml 具有深厚的數學基礎,一直以來與學術界有著密切的聯繫。世界各地的許多大學都有教授 OCaml,且關於 OCaml 的研究也日益增多。

頂尖大學教授 OCaml

劍橋大學

劍橋大學是位於英國劍橋的一所學院制研究型大學。

電腦科學基礎

講義

進階函數式程式設計

哈佛大學

哈佛大學是位於麻薩諸塞州劍橋的一所私立常春藤研究型大學,也是高等教育學府。

程式語言編譯原理

講義

影片錄製

電腦科學概論 II - 抽象與設計

康乃爾大學

康乃爾大學是位於紐約州伊薩卡的一所私立、法定、常春藤聯盟和贈地研究型大學。

資料結構與函數式程式設計

講義

影片錄製

巴黎西岱大學

巴黎西岱大學是位於法國巴黎的一所跨領域研究型大學,以其對創新、國際合作以及橫跨科學、人文和社會科學等廣泛學術課程的強烈重視而聞名。

函數式程式設計概論
網頁函數式程式設計
函數式程式設計
虛擬機

講義

編譯
靜態分析
進階函數式程式設計

講義

進階函數式程式設計

講義

加州大學聖地牙哥分校

加州大學聖地牙哥分校(簡稱 UC San Diego 或 UCSD)是位於加州聖地牙哥的一所公立贈地研究型大學。

還有更多學術機構教授 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

PLDI
效果

擴展 OCaml 的 `open`

我們提出對 OCaml 的 `open` 結構進行和諧的擴展。OCaml 現有的結構 `open M` 會將模組 `M` 輸出的名稱匯入到目前的範圍。目前,`M` 必須是模組的路徑。我們建議擴展 `open` 以接受任意模組表達式,使其能夠簡潔地解決在撰寫 OCaml 程式時出現的許多現有的範圍相關難題。

Runhang Li、Jeremy Yallop

ocaml-workshop
核心
語言

在空間和時間上限制資料競爭

我們提出一種新的共享記憶體平行程式語意,即使在存在資料競爭的情況下也能提供強大的保證。我們的本地資料競爭自由屬性保證程式的所有資料競爭自由部分都展現循序語意。我們提供了一個簡單的操作語意和一個等效的公理模型,並評估了 OCaml 程式語言的實作。我們的評估表明,在主流程式語言中,可以平衡易於理解的記憶體模型與合理的循序效能權衡(在 x86 上沒有額外負荷,在 ARM 上約為 0.6%)。

Stephen Dolan、KC Sivaramakrishnan、Anil Madhavapeddy

PLDI
多核心

研究人員對 Ocaml 的評價

儘管經過所有這些測試,我們從未收到任何內部測試或現場報告中指出,任何 XenServer 缺陷可以追溯到 OCaml 執行階段或編譯器中的錯誤。(在開發過程中,我們確實曾經發現一個次要的編譯器錯誤,當編譯具有許多函數引數的自動產生 OCaml 程式碼時會觸發,但這在我們報告時已經在開發分支中修復。無需與 INRIA 的維護人員互動。)

Scott, D. & Sharp, R. & Gazagnaire, T. & Madhavapeddy, A.(2010)

《化學資訊學期刊》第 11 卷,文章編號:10

對我們而言,OCaml 已被證明在化學資訊學和結構生物資訊學方法開發的軟體原型設計方面非常有效率。此處展示的軟體在科學驗證活動中,針對許多分子和蛋白質靶點進行了密集且及時的使用。我們從未後悔選擇 OCaml,並且至今仍在使用它。

Francois Berenger , Kam Y. J. Zhang 和 Yoshihiro Yamanishi.(2019)

ACM SIGPLAN 通知。45. 87-92。10.1145/1863543.1863557。

推薦書籍

推薦書籍

OCaml 程式設計:正確 + 有效率 + 優美

初學者

這本教科書用於康乃爾大學第三學期的課程,教授 OCaml 中的函數式程式設計和資料結構,強調語意和軟體工程。適合有 Python 和 Java 背景的學生,它需要一些命令式語言的技能和基礎離散數學知識。本書包含 200 多個 YouTube 影片作為補充或替代學習資源。

推薦書籍

真實世界的 OCaml

中級

這本實用書籍引導您使用 OCaml 解決資料處理和 Web 應用程式中的實際問題,以真實範例涵蓋其各種程式設計風格。它從基礎開始,進階到模組系統和外部函數介面等主題,重點在使用 Jane Street 核心函式庫進行高效編碼。

查看所有書籍 (16)

產業應用

好奇 OCaml 如何在產業中使用嗎?

前往我們的成功案例,了解企業如何使用 OCaml。