Skip to main content
QUICK REVIEW

[论文解读] An Approach to Programming Based on Concepts

Alexandr Savinov|ArXiv.org|Dec 30, 2007
Advanced Software Engineering Methodologies参考文献 31被引用 5
一句话总结

本文提出一种以“概念”为核心的新型编程范式——一种结合参考类与对象类的双重结构抽象,通过继承、多态和生命周期管理实现泛化的面向对象编程。该方法通过包含关系形式化概念,并引入上下文栈和双方法等机制,构建了一个统一模型,将传统OOP扩展为具有更强封装性和类型安全性的范式。

ABSTRACT

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 生成,并经人工编辑审核。