【24h】

Recursive Structures for Standard ML

机译:标准ML的递归结构

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

摘要

Standard ML is a statically typed programming language that is suited for the construction of both small and large programs. "Programming in the small" is captured by Standard ML's Core language. "Programming in the large" is captured by Standard ML's Modules language that provides constructs for organising related Core language definitions into self-contained modules with descriptive interfaces. While the Core is used to express details of algorithms and data structures, Modules is used to express the overall architecture of a software system. In Standard ML, modular programs must have a strictly hierarchical structure: the dependency between modules can never be cyclic. In particular, definitions of mutually recursive Core types and values, that arise frequently in practice, can never span module boundaries. This limitation compromises modular programming, forcing the programmer to merge conceptually (i.e. architecturally) distinct modules. We propose a practical and simple extension of the Modules language that caters for cyclic dependencies between both types and terms defined in separate modules. Our design leverages existing features of the language, supports separate compilation of mutually recursive modules and is easy to implement.
机译:标准ML是一种静态类型的编程语言,适用于小型和大型程序的构造。 Standard ML的Core语言捕获了“小程序设计”。 Standard ML的模块语言捕获了“大型编程”,该语言提供了用于将相关Core语言定义组织到具有描述性接口的自包含模块中的构造。核心用于表达算法和数据结构的细节,而模块则用于表达软件系统的整体体系结构。在标准ML中,模块化程序必须具有严格的层次结构:模块之间的依赖性永远不能是循环的。特别是,在实践中经常出现的相互递归Core类型和值的定义永远不会跨越模块边界。此限制损害了模块化编程,迫使程序员在概念上(即在体系结构上)合并不同的模块。我们提议对模块语言进行实用且简单的扩展,以适应类型和在单独模块中定义的术语之间的循环依赖关系。我们的设计利用了该语言的现有功能,支持相互递归模块的单独编译,并且易于实现。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号