Higher-Order and Symbolic Computation

, Volume 24, Issue 3, pp 207–237

Path resolution for nested recursive modules

Article

DOI: 10.1007/s10990-012-9083-6

Cite this article as:
Garrigue, J. & Nakata, K. Higher-Order Symb Comput (2011) 24: 207. doi:10.1007/s10990-012-9083-6
  • 72 Downloads

Abstract

The ML module system facilitates the modular development of large programs, through decomposition, abstraction and reuse. To increase its flexibility, a lot of work has been devoted to extending it with recursion, which is currently prohibited. The introduction of recursion adds expressivity to the module system. However it also creates problems that a non-recursive module system does not have.

In this paper, we address one such problem, namely resolution of path references. Paths are how one refers to nested modules in ML. Without recursion, well-typedness guarantees termination of path resolution, in other words, we can statically determine the module that a path refers to. This does not always hold with recursive module extensions, since the module system then can encode a lambda-calculus with recursion, whose termination is undecidable regardless of well-typedness. We formalize this problem of path resolution by means of a rewrite system on paths and prove that the problem is undecidable even without higher-order functors, via an encoding of the Turing machine into a calculus with just recursive modules, first-order functors, and nesting. Motivated by this result, we introduce a further restriction on first-order functors, limiting polymorphism on functor parameters by requiring signatures for functor parameters to be non-recursive, and show that this restriction is decidable and admits terminating path resolution.

Keywords

The ML module system Recursive modules Ground term rewriting Decidability Termination 

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  1. 1.Graduate School of MathematicsNagoya UniversityNagoyaJapan
  2. 2.Institute of CyberneticsTallinn University of TechnologyTallinnEstonia

Personalised recommendations