诺曼·拉姆齐
|
我是谁,我做什么
编程语言基础设施
语言和学习
语言应用、设计和语义
课程开发
我们的第三道菜, COMP 40(机器结构和装配语言编程) ,最类似于机器组织或系统编程的课程。 我重新设计了课程,重点放在两组技能上:应用数据抽象和机器级编程。 重新设计的课程现在由另外三名讲师授课,一些人认为这是我们系最有价值的课程。 这在毕业生调查中受到高度赞扬,他们有机会确定 一 这门课程体现了“一门真正优秀的大学课程应该是什么样的。” 我用一门新的编程语言“范例”课程取代了旧的课程 编程语言必修课 COMP 105要求学生学会 使用 实际编程中的关键编程语言思想,也需要一些数学内容(例如操作语义、方程式证明)。 这门课用的是我的草稿书 编程语言:构建、证明和比较 ,有效地作为我们的第四门编程课程。 COMP 105也受到学生的高度评价,并在高年级调查中被提及,尽管不如COMP 40那么多。
五篇最重要的论文
重新定位机器 按货币列出的指令 . ACM会议记录 SIGPLAN’96编程语言设计与实现会议 , 在里面 SIGPLAN通知 ,31(5):226–2361996年5月。 本文连接了两个世界:系统编程的“低级崇拜” 以及lambda-calculus的纯数学世界。 关键洞察力是 该重定位是对二进制代码执行的低级操作 currying的一个实例,它是多个参数的表达式 lambda-calculus中的函数。 随机Lambda演算和 概率分布的单数 (带有 Avi Pfeffer公司 ). 第29届美国计算机学会程序设计原理研讨会会议记录 语言, 在里面 SIGPLAN通知 ,37(1):154–165,1月 2002 本文探讨了在 基本的、有原则的方法。 它的特殊贡献是分析 以一种完全正式且 与概率论紧密相连。 转型方法 延迟分支的二进制翻译 (带有 克里斯蒂娜·西富恩特斯 ). 程序设计语言与系统学报 , 25(2):210–2242003年3月。 本文解决了二进制分析中一个小而难的问题 代码。 对于那些 使用二进制代码,我相信我们的解决方案是确定的。 表达语言 签名 (带有 凯瑟琳·费舍尔 和 保罗·戈维罗 ). 在 第十届会议记录 ACM SIGPLAN函数编程国际会议 (2005年ICFP) ,第27-40页,2005年9月。 被选为ICFP 2005年度最佳论文之一。 在本文中,我们确定了一类重要的编程问题 无法用当前语言表达的解决方案,我们 表明这些问题可以通过与 现有的语言。 自动生成 使用声明性机器描述的指令选择器 (带有 乔·迪亚斯 ). 在 第37届ACM程序设计原理研讨会会议记录 语言文字 ,第403-416页,2010年1月。 Joáo Dias博士最美丽的成果 论文:(a)如果你只知道中间产物的语义 代码和目标指令集,生成代码生成器是 不可判定; 和(b)通过使用基于 代数定律,乔昂可以为实际机器生成代码生成器 迅速地。 该算法的核心结合了霍尔逻辑和统一 查找实现中间代码的机器指令序列。 威尔 特别是对那些喜欢推理规则及其编译器的人有吸引力。
其他五篇重要论文
指定的表示 机器说明书 (带有 玛丽·F·。 费尔南德斯 ). 程序设计语言与系统学报 , 19(3):492–5241997年5月。 这是对我早期 处理声明性机器描述。 单一中间语言 支持多种例外实现 (带有 西蒙·L·。 佩顿 琼斯 ). ACM SIGPLAN’00编程语言会议记录 设计和实施, 在里面 SIGPLAN通知 , 35(5):285–2982000年5月。 这篇论文是C论文中技术性和严谨性最强的一篇。 它体现了我在C语言中试图实现的目标--:干净、低级 编译器编写器可以用来实现不同的 高级语言功能和控制成本权衡。 文件的代数方法 同步 (与Elöd Csirmaz一起)。 在 第八届欧洲软件工程会议论文集 第九届ACM SIGSOFT软件工程基础研讨会 (FSE-9) ,第175-185页,2001年9月。 本文讨论了如何保持多个 可以同时修改的文件的副本。 我们提出了推理 通过检查序列的代数结构来研究这个问题 修改。 一种广义算法 图形着色寄存器分配 (带有 迈克尔·D·。 史密斯 和 格伦·霍洛韦)。 2004年ACM SIGPLAN 程序设计与实现会议 , 在里面 SIGPLAN通知 ,39(6):277–2882004年6月。 一种处理目标机器不规则性的新技术, 这是因为并非所有的机器寄存器都可以互换使用。 我们 希望这将是关于处理不规则注册文件的权威论文 在图形颜色寄存器分配器中。 分阶段分配:合成 指定和实现过程调用约定的技术 (带有 鲁本·奥林斯基 和 克里斯汀·林迪格 ). 在 会议记录 第33届ACM程序设计语言原理研讨会 , 第409–421页,2006年1月。 一种用于参数传递的规范语言,在具有 形式语义。 与早期关于堆叠框架布局的论文一起 调用约定的完整方法。
其他近期论文
箍:模块化、可重复使用 数据流分析和转换库 (带有 乔·迪亚斯 和 西蒙·L·。 佩顿·琼斯 ). 在 第三届ACM SIGPLAN Haskell研讨会会议记录 (哈斯克尔,2010年) 2010年9月。 我们以模块化的方式实现数据流分析和转换 使用Haskell的高级功能。 与我们2009年的技术报告不同 强调 使用 Hoopl,本文的重点是 实现,它已经被仔细地模块化,以将每个 所有其他人的棘手之处。 对硬核最感兴趣 函数式程序员和编译器编写者。 可资源化、可重定向、模块化 使用与机器无关的、基于类型的平铺的指令选择 低级中间代码 (带有 乔·迪亚斯 ). 在 第38届ACM程序设计原理研讨会会议记录 语言文字 ,第575-586页,2011年1月。 在大多数编译器中,构建指令选择器需要映射 从中间形式到目标机器指令。 映射必须是 每个目标机器定义一次。 这里我们描述一个有效的映射 用于所有寄存器机器。 通过使用此映射,我们将 机器相关组件足够简单,可以生成 自动。 使用 工程方法 . 2011年3月。 一本教科学或 工程。配有学生版。 嵌入解释语言 使用高阶函数和类型 . 功能杂志 编程 ,21(6):585–6152011年11月。 (A) 早期版本 出现在 ACM SIGPLAN 2003研讨会 口译员、虚拟机和模拟器 .). 向…致敬 奥利维尔·丹维 :如何 通过以下方式将特定于应用程序的函数嵌入到解释器中 描述其类型。 这篇论文虽然在技术上不够深入,但显示了 函数式语言的功能以优雅的优势 代表我的口译员工作。 经验报告:Haskell 计算生物学 (与诺亚·M·丹尼尔斯(Noah M.Daniels)和安德鲁·加兰特(Andrew Gallant)合作)。 在 第十七届ACM SIGPLAN国际会议记录 函数编程(ICFP'12) ,第227-234页,9月 2012 被选为ICFP 2012年度最佳论文之一。 鼓励计算生物学家尝试Haskell。 如果您是 函数式程序员,您将看到惰性搜索的有趣变化。 您还可以了解为什么初学者可能会觉得很难 使用QuickCheck。 工程定义 口译员 (与Jan Midtgaard和Bradford Larsen合作)。 在 第十五届国际原理与技术研讨会论文集 声明式编程实践(PPDP'13) ,第121-132页, 2013年9月。 定义口译员可能很简单,但通常表现不太好 好。 成熟的字节码解释器可以执行得很好,但并不简单或 易于建造。 本文叙述了我们对“最佳简单”的广泛搜索 用功能语言编写的定义口译员的变体。 MRFy:利用马尔可夫链对β结构蛋白进行远程同源性检测 随机域和随机搜索(与Noah M.Daniels,Andrew合著 格兰特, 诺曼·拉姆齐 、和 Lenore J。 Cowen)。 IEEE/ACM计算生物学和生物信息学汇刊 , 12(1):2015年4月16日。 本文的初步版本出现在 第四次ACM 生物信息学、计算生物学和 生物医学信息学(ACM BCB 2013) 被评为最佳 学生论文。 我们关于蛋白质同源性随机搜索的工作结果。 这个 搜索工具是用函数语言Haskell编写的。 论教学 如何设计 程序 :新来的观察 . 在 第十九届ACM SIGPLAN国际会议记录 函数编程(ICFP’14) ,第153-166页,9月 2014 2013年秋季,我用有趣的 教材 如何设计程序 如果你能从这本书中学习, 这篇论文包含了很多关于如何准备和教学的有用信息 这样的课程。 符号贝叶斯推断 通过惰性部分求值 (与Chung-Cheeh Shan一起)。 在 第44届ACM程序设计原理研讨会会议记录 语言文字 ,第130–144页,2017年1月。 为了从测量零点的观测中得出概率推断, 分解 后验无穷族的连续空间 分配。 然后使用观察结果选择一个家庭成员。 钟介山的作品非常出色,我很自豪能与之为伍。 (如果你喜欢我在概率单子上的工作,那么这篇论文是很好的下一篇 步骤) 超越重新操作:将非结构化控制流递归转换为 结构化控制流(功能明珠)。 美国计算机学会程序设计语言会议录 ,6(ICFP),2022年8月。 这颗功能明珠复兴了1973年的程序翻译 将任何可简化的控制流图转换为结构化控制流, 没有 引入多余的代码、变量或测试。 什么时候? 该算法在功能上实现简单,其正确性为 很容易争论。 关键的新想法是,翻译可以通过 在支配树上递归的函数。
包括这些页面中包含的文档 确保及时 传播关于 非商业基础。 版权及其所有权利 由作者或其他版权维护 持有人,尽管他们提供了 在这里以电子方式工作。 据了解 复制此信息的人将遵守条款 以及每个作者的版权所引用的限制。 如果没有明确的 版权所有者的许可。
教学
关于我