Extended alias type system using separating implication

  • Authors:
  • Toshiyuki Maeda;Haruki Sato;Akinori Yonezawa

  • Affiliations:
  • The University of Tokyo, Tokyo, Japan;The University of Tokyo, Tokyo, Japan;The University of Tokyo, Tokyo, Japan

  • Venue:
  • Proceedings of the 7th ACM SIGPLAN workshop on Types in language design and implementation
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Although explicit memory management is necessary to implement low-level software such as operating systems and language runtime systems, it is prohibited by conventional strictly typed programming languages because it violates the type preservation of memory regions, a property that ensures the type safety of programs. The alias type system allows explicit memory management without the loss of type safety by statically tracking pointers and their aliases. However, it suffers from limitations in handling recursive data structures because it requires complete information about the pointer aliases. In this paper, we propose an extension of the alias type system using separating implications, which are derived from separation logic. Separating implications enable us to handle recursive data structures with incomplete aliasing information by assuming aliasing relations in a part of memory. The proposed type system is capable of expressing tail-recursive operations on recursive data structures. For example, we can implement a FIFO queue with constant-time operations; this cannot be achieved using the original alias type system.