A Syntactic Type System for Recursive Modules

Citations

WEB OF SCIENCE

0
Citations

SCOPUS

0

초록

A practical type system for ML-style recursive modules should address at least two technical challenges. First, it needs to solve the double vision problem, which refers to an inconsistency between external and internal views of recursive modules. Second, it needs to overcome the tension between practical decidability and expressivity which arises from the potential presence of cyclic type definitions caused by recursion between modules. Although type systems in previous proposals solve the double vision problem and are also decidable, they fail to typecheck common patterns of recursive modules, such as functor fixpoints, that are essential to the expressivity of the module system and the modular development of recursive modules. This paper proposes a novel type system for recursive modules that solves the double vision problem and type-checks common patterns of recursive modules including functor fixpoints. First, we design a type system with a type equivalence based on weak bisimilarity, which does not lend itself to practical implementation in general, but accommodates a broad range of cyclic type definitions. Then, we identify a practically implementable fragment using a type equivalence based on type normalization, which is expressive enough to typecheck typical uses of recursive modules. Our approach is purely syntactic and the definition of the type system is ready for use in an actual implementation.

키워드

LanguagesTheoryDesignType systemsmodulesrecursionabstract typesweak bisimulations
제목
A Syntactic Type System for Recursive Modules
저자
Im, HyeonseungNakata, KeikoGarrigue, JacquesPark, Sungwoo
DOI
10.1145/2076021.2048141
발행일
2011-10
유형
Article; Proceedings Paper
저널명
SIGPLAN Notices (ACM Special Interest Group on Programming Languages)
46
10
페이지
993 ~ 1012