[论文解读] An Approach to Programming Based on Concepts
本文提出一种以“概念”为核心的新型编程范式——一种结合参考类与对象类的双重结构抽象,通过继承、多态和生命周期管理实现泛化的面向对象编程。该方法通过包含关系形式化概念,并引入上下文栈和双方法等机制,构建了一个统一模型,将传统OOP扩展为具有更强封装性和类型安全性的范式。
In this paper we describe a new approach to programming which generalizes object-oriented programming. It is based on using a new programming construct, called concept, which generalizes classes. Concept is defined as a pair of two classes: one reference class and one object class. Each concept has a parent concept which is specified using inclusion relation generalizing inheritance. We describe several important mechanisms such as reference resolution, context stack, dual methods and life-cycle management, inheritance and polymorphism. This approach to programming is positioned as a new programming paradigm and therefore we formulate its main principles and rules.
研究动机与目标
- 通过引入一种名为“概念”的新抽象,将传统面向对象编程泛化,统一参考类与对象类。
- 通过结构化的概念层次,解决现有OOP模型的局限性,实现更强的封装性和类型安全性。
- 通过定义原则、规则和机制(如上下文栈与引用解析),形式化一种新的编程范式。
- 通过概念间的父子关系支持多态与继承,泛化经典继承机制。
提出的方法
- 概念被定义为一对:参考类与对象类,二者在模型中均为一等构造。
- 继承通过概念之间的包含关系建模,子概念从父概念继承。
- 引用解析通过上下文栈管理,用于在执行过程中追踪活动的概念实例。
- 引入双方法:一个用于参考类,一个用于对象类,以支持多态行为。
- 通过控制概念实例的创建、销毁与状态转换的方法,正式化生命周期管理。
- 通过允许操作根据概念内对象类的动态类型进行分派,支持多态。
实验结果
研究问题
- RQ1如何通过一种新抽象,将面向对象编程泛化于传统基于类的模型之外?
- RQ2在双类模型中,支持引用解析与动态分派所需的机制是什么?
- RQ3在基于概念的模型中,如何形式化继承与多态,同时保持类型安全性?
- RQ4上下文栈在程序执行过程中管理概念实例时发挥什么作用?
- RQ5如何将生命周期管理整合到概念模型中,以确保正确处理资源?
主要发现
- 该概念模型通过引入分离参考与对象关注点的双重结构抽象,成功将基于类的OOP泛化。
- 概念之间的包含关系提供了一种清晰、形式化的继承方式,其范围超越单一类层次结构。
- 通过上下文栈实现的引用解析支持动态分派,并以类型安全的方式支持多态行为。
- 双方法为在参考层与对象层分别定义行为提供了机制,增强了表达力与控制力。
- 生命周期管理被有效整合到模型中,实现了概念实例的可预测初始化与清理。
- 该方法表明,可通过一致的原则、规则与机制,正式定义一种新型编程范式,为未来语言设计奠定基础。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。