泛型约束方法及其安全机制.pdfVIP

  • 4
  • 0
  • 约7.45万字
  • 约 69页
  • 2020-08-22 发布于江苏
  • 举报
摘 要 面向对象程序设计 (OOP)是以程序中的对象为核心,而泛型程序设计(GP) 是以类型需求为核心的程序设计范式。泛型程序设计(GP)与面向对象程序设计 (OOP)两者都是在程序设计时除去不稳定的部分,用更加通用的并且效率更高 的部分来构造程序。尽管通用性和效率这两个特性被认为是相互对立的,但是仍 然期望能在程序开发的大多数情况下实现两者之间的平衡,从而在确保类型安全 的前提下加快程序开发的速度。 总结了不同设计风格的主流程序设计语言有关泛型设施的异同。对于面向对 象程序设计语言,以Java 为例,Java 的参数化类型和泛型约束之间紧耦合,描 述的泛型需求过于狭窄,只能称之为窄义的约束;对于动态类型程序设计语言, 以 Python 为例,动态类型语言天然地支持泛型,没有严格的类型定义格式,可 以随时改变参数类型,泛型约束机制近乎没有;对于函数式程序设计语言,以 Scala 为例,Scala 的 Implicits 机制基于面向对象程序设计风格,支持关联类 型,对泛型概念特性有着良好的支持,但依旧具有隐式参数。 研究了现今主流程序设计语言中的泛型约束方法及其安全机制,因为主流语 言其他设施的影响,语言抽象程度不高,难以描述复杂的语义需求,大部分主流 语言对于泛型约束的支持还停留在语法层面,缺乏规范的约束描述语言,难以直 接写出满足需求的泛型约束。以高度抽象的泛型程序设计语言 Apla 为宿主语言 提出了基于完整 GP 类型需求的泛型约束方法,同时支持语法层和语义层的泛型 约束。给出了 Apla 类型系统,使用一阶谓词逻辑公式的形式刻画了基本数据类 型约束,基于代数结构描述了自定义抽象数据类型约束。给出了通用规范的泛型 约束描述语言。提出了 Apla 泛型约束的安全机制,通过约束匹配检测的方式保 证类型安全性。设计了匹配检测算法来判定泛型约束是否满足需求,以实际算法 为例展示了匹配检测的全过程。最后,以 PAR 方法为支撑,在 PAR 平台 C++生成 系统中实现了 Apla 泛型约束安全机制的功能。相较于现有研究,更进一步实现 了完整意义上以类型需求为核心的GP 概念。 关键词: 泛型编程;类型需求;泛型约束方法;泛型约束安全机制;平台 实现 I Abstract Abstract: Object-oriented programming (OOP) is a programming paradigm centered on the objects in a program, while generic programming (GP) is a programming paradigm centered on type requirements. Generic programming (GP) and object-oriented programming (OOP) both remove the unstable parts of programming and construct programs with more generic and efficient parts. Although the two characteristics of universality and efficiency are considered to be opposed to each other, it is expected to achieve a balance between the two in most cases of program development, thus speeding up program development while ensuring type safety. This paper summarizes the similarities and differences

文档评论(0)

1亿VIP精品文档

相关文档