ACM Home Page
Please provide us with feedback. Feedback
Types for describing coordinated data structures
Full text PdfPdf (256 KB)
Source Types In Languages Design And Implementation archive
Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation table of contents
Long Beach, California, USA
Pages: 25 - 36  
Year of Publication: 2005
ISBN:1-58113-999-3
Authors
Michael F. Ringenburg  University of Washington, Seattle, WA
Dan Grossman  University of Washington, Seattle, WA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 28,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1040294.1040297
What is a DOI?

ABSTRACT

Coordinated data structures are sets of (perhaps unbounded) data structures where the nodes of each structure may share abstract types with the corresponding nodes of the other structures. For example, consider a list of arguments, and a separate list of functions, where the n-th function of the second list should be applied only to the n-th argument of the first list. We can guarantee that this invariant is obeyed by coordinating the two lists, such that the type of the n-th argument is existentially Quantified and identical to the argument type of the n-th function. In this paper, we describe a minimal set of features sufficient for a type system to support coordinated data structures. We also demonstrate that two known type systems (Crary and Weirich's LX [6] and Xi, Chen and Chen's guarded recursive datatypes [24]) have these features, even though the systems were developed for other purposes. We illustrate the power of coordinated data structures as a programming idiom with three examples: (1) a list of function closures stored as a list of environments and a separate list of code pointers, (2) a "tagless" list, and (3) a red-black tree where the values and colors are stored in separate trees that are guaranteed to have the same shape.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
3
 
4
5
6
 
7
8
9
 
10
 
11
Ralf Hinze. Fun with phantom types. In Jeremy Gibbons and Oege de Moor, editors, The Fun of Programming, pages 245--262. Palgrave Macmillan, 2003.
12
 
13
Greg Morrisett, Karl Crary, Neal Glew, Dan Grossman, Richard Samuels, Frederick Smith, David Walker, Stephanie Weirich, and Steve Zdancewic. TALx86: A realistic typed assembly language. In 2nd ACM Workshop on Compiler Support for System Software, pages 25--35, 1999. INRIA Technical Report 0288, 1999.
14
15
16
17
 
18
Francois Pottier and Yann Régis-Gianas. Towards efficient, typed LR parsers. Submitted to thephJournal of Functional Programming, September 2004.
 
19
 
20
Michael F. Ringenburg and Dan Grossman. Type safety and erasure proofs for "A type system for coordinated data structures". Technical Report 2004-07-03, University of Washington, 2004.
 
21
 
22
 
23
24
25
26
 
27



REVIEW

"James Curtis Miller : Reviewer"

This paper is concerned with the idea of extending the typing system of a programming language to include the idea of sets of data structures, where corresponding nodes within the structures must coordinate. An example of a place where this idea c  more...

Collaborative Colleagues:
Michael F. Ringenburg: colleagues
Dan Grossman: colleagues