超越语言的球拍

主要观点:Chris Krycho 学习 Racket 构建编程语言,Racket 适合构建语言,有多种强大抽象,如 delimited continuations、ConcurrentML 启发的并发、资源控制、合同系统、Typed Racket 等,虽 Racket 在高校有教学但在工业中缺失,应关注并将其思想引入其他语言。
关键信息:

  • Racket 可构建语言,相关书籍聚焦于构建领域特定语言的创新。
  • delimited continuations 是最具脑重塑性的,Racket 支持其全面探索。
  • ConcurrentML 启发的并发在 Racket 中有体现,可构建综合的并发树。
  • 资源控制机制如 custodians 可确保系统资源的干净关闭。
  • 合同系统在 Racket 标准库中广泛使用。
  • Typed Racket 是静态类型的 Racket 方言,能与未类型化代码互操作。
    重要细节:
  • Alexis King 的 keynote 对 continuations 有直观解释。
  • Andy Wingo 有系列文章介绍 CML 与其他并发机制。
  • Racket 参考文档记录了 CML 原语及与其他值的互操作性。
  • 很多 Racket 机制源于教学目的,如 More 教程中的 custodian 示例。
  • 合同系统基于 chaperones 和 impersonators 实现。
  • Typed Racket 能将类型检查退化到运行时合同,有实验性依赖类型支持。
阅读 15
0 条评论