arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 0910.2654cs.PL
收藏

类型安全可扩展程序设计

Type Safe Extensible Programming

Wonseok Chae

摘要:

软件产品随着时间的推移而发展。有时候它们通过添加新特性而进化,有时候通过修复bug或用新的实现替换过时的实现而进化。当软件工程师在开发过程中未能预见到这种演变时,他们最终将被迫从头开始重新构建或重新构建。因此,通常的做法是为更改做好准备,以便软件产品在其生命周期内是可扩展的。然而,使软件可扩展是具有挑战性的,因为它是很难预测连续的变化,并提供足够的抽象机制,对潜在的变化。此外,这样的可扩展性机制不应该在扩展期间损害任何现有的功能。软件工程师将受益于一个工具,它提供了一种以可靠的方式添加扩展的方法。期望程序设计语言扮演这个角色是很自然的。可扩展编程是解决这些问题的努力之一。在这篇论文中,我们提出了类型安全的可扩展编程使用MLPolyR语言。MLPolyR是一种类似ML的函数式语言,其类型系统在多个级别上提供了类型安全的可扩展性机制。在介绍语言之后,我们将展示如何在产品线工程的上下文中很好地使用这些可扩展性机制。产品线工程是一种新兴的软件工程范式,旨在管理源于软件连续变化的变化。

英文摘要:

Software products evolve over time. Sometimes they evolve by adding new features, and sometimes by either fixing bugs or replacing outdated implementations with new ones. When software engineers fail to anticipate such evolution during development, they will eventually be forced to re-architect or re-build from scratch. Therefore, it has been common practice to prepare for changes so that software products are extensible over their lifetimes. However, making software extensible is challenging because it is difficult to anticipate successive changes and to provide adequate abstraction mechanisms over potential changes. Such extensibility mechanisms, furthermore, should not compromise any existing functionality during extension. Software engineers would benefit from a tool that provides a way to add extensions in a reliable way. It is natural to expect programming languages to serve this role. Extensible programming is one effort to address these issues. In this thesis, we present type safe extensible programming using the MLPolyR language. MLPolyR is an ML-like functional language whose type system provides type-safe extensibility mechanisms at several levels. After presenting the language, we will show how these extensibility mechanisms can be put to good use in the context of product line engineering. Product line engineering is an emerging software engineering paradigm that aims to manage variations, which originate from successive changes in software.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑