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

就我对研究兴趣的简单描述而言,我正处于一个过渡期。我的传统区域是程序设计语言形式化方法,但我的兴趣已经扩展到包括计算机系统设计和实现的其他方面。我喜欢在当前的安全和隐私问题上对计算堆栈进行彻底的重新设计,我相信这在一个中心方面涉及到我的传统重点机械化数学证明,尤其是Coq证明助理然而,我现在也花了相当多的时间来思考更普遍的愉快接口(例如,硬件指令集、操作系统所有接口、编程语言)以及硬件和软件系统的有效实现,包括修补层之间的传统边界。

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

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

当前研究

需要徽标 一个未命名的(还有一些初步的)伞形项目,用端到端的机械化证明构建演示软件/硬件系统。我是从开发基岩用于验证多语言编程的库,但该项目已基本结束;我们现在正在进行一个替换项目,该项目共享名称,但做出了非常不同的设计决策,仍然支持由经过验证的编译器处理的分离逻辑验证的低级程序(用一种雅致的语言,而不是C!),我想用它来探索替代的、大大简化的类操作系统功能。顶部的编程层意味着菲亚特自动和正确构造程序的系统从规范中派生,我们目前正在尝试使用该规范为实际网络服务器生成代码,这是一个方便的领域,可以尝试使高级编程更像关系数据库编程,但没有通常的粗糙边。在汇编语言级别下,我们在卡米关于模块化硬件验证和验证编译的项目,目前正在与业界共同进行开发,我对探索通用处理器中的替代并发支持特别感兴趣。现在一个跨领域的重点是加密,包括我们的菲亚特密码学该项目主要关注有限域算法的一个经过验证的特定于域的编译器,该编译器应很快包含在Google Chrome的构建过程中(以生成一些代码来验证SSL连接)。
深度规范 深度规范科学2016-2021年,美国国家科学基金会计算考察项目,推动与我上面描述的类似的全面验证研究,但涉及更传统的架构

一些古老的研究

网址(Ur/Web),一种用于现代Web应用程序的特定于域的函数编程语言。我在读研究生时就开始研究它,它几乎是在研究方面完成的,产生了一个相当多人喜欢使用的生产质量工具套件。
兰达·塔默是一个伞形库,用于我在研究生阶段开始的编译器验证实验。这项工作最具体的成果是参数化高阶抽象语法程序语法的编码,我们仍在我的许多项目中使用,在这些项目中,不同类型的编译器仍然是新系统设计中的常见元素。
FSCQ公司,一个在Coq中验证的文件系统,使用分离逻辑来推理碰撞安全性,这些天主要由年的同事执行PDOS组

研究生

博士

硕士学位

本科生

过去的学生

教学

  • 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”),你就会离得足够近。

    推荐阅读

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

    更多内容和链接。。。。