首页> 外文学位 >A design discipline and language features for modular reasoning in aspect-oriented programs.
【24h】

A design discipline and language features for modular reasoning in aspect-oriented programs.

机译:面向方面的程序中用于模块化推理的设计学科和语言功能。

获取原文
获取原文并翻译 | 示例

摘要

Aspect-oriented programming lets programmers modularize concerns that are orthogonal to the main decomposition of a program. To do this, aspect-oriented programming includes modules called aspects that may modify the behavior, or advise, code in the main decomposition. Aspect-oriented programming also allows aspects to declaratively specify what code should be advised. This means that a whole-program search is required to find all the aspects that might advise a given piece of code. The problems this causes are somewhat analogous to overriding methods and polymorphic method dispatch in traditional object-oriented programming.; In object-oriented programming, the discipline of behavioral subtyping permits reasoning about polymorphic methods even when overriding methods remain unseen. The discipline gives guidance to the author of an overriding method: the overriding method must satisfy the specification of the overridden, superclass method. If the author follows the discipline, then other programmers can reason about a method invocation based on the specification of the superclass method, even if an unseen overriding method might actually be executed.; This dissertation describes an analogous discipline for aspect-oriented programming. The basic premise is that modular reasoning about aspect-oriented programs requires shared responsibility between the aspect author and the client programmer, whose code might be advised by the aspect.; To mediate this sharing, this dissertation proposes that aspects be categorized into two sorts: "spectators" and "assistants". Spectators are statically restricted to not modify the behavior of the code that they advise. Because of their restricted behavior, spectators may remain unseen by the client programmer. The burden is on the aspect programmer to ensure that spectators satisfy their restrictions. Unlike spectators, assistants are not restricted in their behavior. The burden of reasoning about their effects falls to the client programmer. To do this, the client programmer must be able to identify all applicable assistants. Thus, assistants must be explicitly accepted by the advised code. This discipline allows modular reasoning, permits the use of existing aspect-oriented idioms, and appears to be practical and statically verifiable. A formal study demonstrates that the restrictions on spectators may be statically checked.
机译:面向方面的编程使程序员可以模块化与程序主要分解正交的关注点。为此,面向方面的编程包括称为方面的模块,这些模块可以在主要分解过程中修改行为或建议代码。面向方面的编程还允许方面以声明方式指定应建议的代码。这意味着需要对整个程序进行搜索,以找到可能建议给定代码段的所有方面。这引起的问题在某种程度上类似于传统的面向对象编程中的覆盖方法和多态方法调度。在面向对象的程序设计中,行为子类型的规则允许对多态方法进行推理,即使没有覆盖方法。该学科为重写方法的作者提供了指导:重写方法必须满足被重写的超类方法的规范。如果作者遵循该学科,那么即使实际上可能执行了看不见的重写方法,其他程序员也可以基于超类方法的规范来进行方法调用。本文描述了面向方面编程的类似学科。基本前提是,面向方面的程序的模块化推理需要方面作者和客户程序员之间的共同责任,方面可能会建议其代码。为了调解这种共享,本文提出将方面分为两类:“观众”和“助手”。观众受到静态限制,不得修改其建议的代码行为。由于行为受限,因此观众可能无法被客户程序员看到。确保程序员满足他们的限制是方面程序员的负担。与观众不同的是,助手的行为不受限制。有关其影响的推理负担由客户端程序员承担。为此,客户程序员必须能够识别所有适用的助手。因此,助手必须被建议的代码明确接受。该学科允许进行模块推理,允许使用现有的面向方面的习惯用法,并且似乎是实用且可静态验证的。一项正式研究表明,可以静态检查对观众的限制。

著录项

  • 作者

    Clifton, Curtis Charles.;

  • 作者单位

    Iowa State University.;

  • 授予单位 Iowa State University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2005
  • 页码 317 p.
  • 总页数 317
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号