亚当·克利帕拉
计算机科学教授
编程语言与验证小组 (麻省理工学院更多损益)
计算机科学与人工智能实验室
电气工程与计算机科学系
麻省理工学院
电子邮件: adamc@csail.mit.edu
办公室: 32-G842型
联系信息-出版物[BibTeX公司]-简历: HTML格式PDF格式
启动更新: 甘露我的创业是基于网址(Ur/Web)UPO公司它拥有一个“无代码”产品,让商业世界的人们可以自由地快速构建自己的“企业软件”应用程序,而无需了解编程。它将丰富类型的函数式编程中的雅致组件架构与大语言模型AI前端相结合,使“编程”就像在你观看时与正在构建应用程序的人聊天一样。我们正处于与客户建立试点的早期阶段,因此非常欢迎向潜在的热情早期采用者提供建议;我们可能很快就能雇佣更多的工程师来从事与编译器、语言设计和IDE相关的工作。

我对重新开发工程师用来创建硬件-软件系统的全部工具感兴趣。我的传统区域是程序设计语言形式化方法(尤其是与Coq证明助理)但我经常研究网络安全、计算机架构、数据库和操作系统接口的问题。

当我刚开始担任教师时,我不知道人们问我的建议风格是什么意思,但现在我知道了一些答案。我现在的招聘主要集中在博士及以下级别,尽管我可能会被说服聘请一位专业知识匹配的博士后。目前麻省理工学院的学生(本科生、硕士生、博士生)如果有兴趣一起工作,应该给我发电子邮件,而对于其他人,我建议遵循我们正常的博士申请流程。

关于我工作的更多信息,(机械化证明部分的)两个低时间投资概述如下我在博客上发表的关于正式证据令人惊讶的安全优势的文章2017年12月,我在第34届混沌传播大会上的演讲视频.

当前研究

端到端硬件-软件验证 我的主要兴趣是跨领域的代码签名开发工具和系统组件完整的数字堆栈(硬件和软件),用于交付具有统一、机器检查的正确性证明的完整系统(通常在Coq公司). 我将我的研究时间平均分配在软件和硬件项目上,这些项目几乎都涉及在Coq中嵌入不同的语言和形式方法方法,偶尔会将它们集成到演示中。我们的第一个统一演示是经过验证的物联网灯泡,将RISC-V微控制器的证明、Bedrock2低级软件语言的编译器以及用Bedrock2编写的设备驱动程序和应用程序代码连接在一起。我们的第二个统一演示是经验证的车库门开启器,仅为软件,但包括密码协议的实现,其中大多数软件都是以各种方式从功能程序自动生成的。第二个演示包含了我们的菲亚特密码术项目,一个特定于域的验证编译器,以及迄今为止影响最大的形式方法项目之一,该项目由安装了使用该项目生成的软件的设备数量决定(例如,菲亚特加密代码基本上随TLS库中的所有web浏览器和移动平台一起提供)。
端到端的并行通道安全 我们也在努力证明定时副通道安全对于完整的硬件-软件堆栈,处理两种主要技术:用恒定时间编程和使用硬件和软件的组合来实现强大的进程隔离。
高性能计算 我正在加大对高性能计算的研究投入,包括使用张量编程和在线事务处理,以及高并行度。我相信,我们今天所知道的多核硬件体系结构既提供了糟糕的编程体验,也提供了较差的性能伸缩性,接下来我很兴奋,我正在从新的(验证过的)软件编译器样式和快速开发新的(经验证的)工具的角度进行研究高度并发的硬件设计。

一些古老的研究

网址(Ur/Web),一种用于现代Web应用程序的特定于域的函数编程语言。当我还是一名研究生的时候,我就开始了这项工作,它几乎是在研究阶段完成的,产生了一个相当多人喜欢使用的高质量的生产工具套件。
兰达·塔默是一个伞形库,用于我在研究生阶段开始的编译器验证实验。这项工作最具体的成果是参数化高阶抽象语法程序语法的编码,我们仍在我的许多项目中使用,在这些项目中,不同类型的编译器仍然是新系统设计中的常见元素。
FSCQ公司,一个在Coq中验证的文件系统,使用分离逻辑来推理碰撞安全性,这些天主要由年的同事执行PDOS组
深度规范 深度规范科学2016-2021年,美国国家科学基金会计算科学考察项目,推动与我上文所述类似的全面验证研究,但针对更传统的架构

研究生

博士

硕士学位

本科生

往届学生

教学

  • 2024年春季:6.1010:编程基础*(同时2022年秋季2021年秋季[同于6.009],2020年秋季[同于6.009],2019年春季[同于6.009],2017年秋季[同于6.009],2016年秋季【同于6.009】,以及2015年秋季[同于6.S04])
  • 2023年春季:6.5120:程序的形式推理*(也包括2022年春季【作为6.822】、2021年春季【成为6.822】,2020年春季【为6.822】;2018年春季【担任6.822】。2017年春季【充当6.887】,2016年春季【扮演6.887】)
  • 2015年春季:6.042:计算机科学数学(也是2012年春季)
  • 2014年秋季:6.170:软件工作室
  • 2013年秋季:6.820:程序分析基础
  • 2013年春季:6.033:计算机系统工程[背诵老师]
  • 2012年秋季:6.005:软件构造
  • 2011年秋季:6.892:交互式计算机定理证明*
  • (“*”表示创建的类I[co]。)

    具有依赖类型的认证编程

    具有依赖类型的认证程序设计:Coq证明助手的实用介绍

    介绍Coq证明助理假设您只熟悉严格的数学和函数式编程。介绍了扩展到程序验证和其他领域的大型正式开发所需的技术,包括脚本证明自动化和嵌入式程序的表达类型。

    联邦铁路管理局

    程序的形式推理

    简介Coq公司同时使用语义和程序证明方法。通过在转换系统上投射(几乎)所有不变量来强调共性,抽象和模块化是我们简化不变量证明的标准工具。以标准数学符号的PDF章节和Coq源文件的形式并行呈现想法,根据作者的心血来潮混合了一些自动校对的魔法。[到目前为止,我已经在研究生课程的六次迭代中使用了这本书,我相信这些材料现在可以在其他地方直接使用了!]

    顾问委员会成员

  • BedRock系统 【自2018年起】:用于安全关键计算的验证系统软件
  • 国防高级研究计划局信息科学与技术(ISAT)研究小组[2018-2022]
  • SiFive公司 【自2018年起】:快速开发定制硬件解决方案,基于RISC-V公司
  • 氪钴 [2016-2019]:加密密钥的智能管理(被Akamai收购)
  • 如何发音我的姓氏

    假设第一个“l”不在那里(“Chipala”),你就会离得足够近。

    推荐阅读资料

    我在这里偏离了主题,但是,特别是对于所有可能会读到这一页下面的学生来说,我想推荐一些对我有很大影响的书,我希望我作为一个学生被告知。

    更多内容和链接。。。。