OCaml 在教学与研究

凭借其深厚的数学根基,OCaml 一直与学术界有着密切的联系。它在世界各地的大学中被教授,并且积累了不断增长的研究成果。

顶级大学教授 OCaml

剑桥大学

剑桥大学是一所位于英国剑桥的学院制研究型大学。

计算机科学基础

讲义

高级函数式编程

哈佛大学

哈佛大学是位于美国马萨诸塞州剑桥的一所私立常春藤盟校研究型大学。高等教育学院。

编程语言编译原理

讲义

视频录制

康奈尔大学

康奈尔大学是位于纽约州伊萨卡的一所私立、法定、常春藤盟校和土地赠款研究型大学。

数据结构与函数式编程

讲义

视频录制

巴黎城市大学

巴黎城市大学是位于法国巴黎的一所多学科研究型大学,以其对创新、国际合作以及跨越科学、人文和社会科学的广泛学术项目的重视而闻名。

函数式编程导论
面向 Web 的函数式编程
函数式编程
虚拟机

讲义

编译
静态分析
高级函数式编程

讲义

高级函数式编程

讲义

加州大学圣地亚哥分校

加州大学圣地亚哥分校(简称加州大学圣地亚哥分校或口语化的 UCSD)是一所位于加利福尼亚州圣地亚哥的公立土地赠款研究型大学。

还有更多学术机构教授 OCaml!

研究论文

了解 OCaml 编程语言和编译器的理论基础

将效果处理程序改造到 OCaml 上

效果处理程序作为一种用于用户定义效果的模块化编程机制,正在获得越来越多的关注。效果处理程序允许以可组合的方式表达非局部控制流机制,例如生成器、async/await、轻量级线程和协程。我们提出了一种设计并评估了用于 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。