Hasty Briefsbeta

双语

What Is "Open Recursion"?

6 months ago
  • #programming
  • #object-oriented
  • #lambda-calculus
  • 开放递归是Pierce在《类型与编程语言》中提出的术语,用于描述从具有函数和记录的基础语言构建面向对象语言时所需的扩展机制。
  • 此处的递归特指方法定义的相互递归,使得方法间可以无视声明顺序相互可见和调用。
  • 开放特性指基类方法能够访问派生对象中被重写的方法,这是通过显式传递接收者对象实现的。
  • 示例展示了创建计数器对象时方法间的相互调用(递归),以及通过重写方法实现调用日志功能(开放)。
  • 与基础语言的关键差异包括方法的相互递归特性及对派生对象的访问能力,这些特性支持了方法重写等面向对象特征。