1996
DOI: 10.1017/s0960129500070109
|View full text |Cite
|
Sign up to set email alerts
|

Uniqueness typing for functional languages with graph rewriting semantics

Abstract: We present two type systems for term graph rewriting: conventional typing and (polymorphic) uniqueness typing. The latter is introduced as a natural extension of simple algebraic and higher-order uniqueness typing. The systems are given in natural deduction style using an inductive syntax of graph denotations with familiar constructs such as let and case.The conventional system resembles traditional Curry-style typing systems in functional programming languages. Uniqueness typing extends this with reference co… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
43
0

Year Published

2003
2003
2013
2013

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 82 publications
(43 citation statements)
references
References 15 publications
0
43
0
Order By: Relevance
“…zip and unzip behave as usual, i.e, zip({1,2,3},{4,5,6}) = {(1,4), (2,5), (3,6)}, but the semantics of zip requires that the input arrays have outermost dimensions of equal sizes. Otherwise a compile or runtime error is signalled.…”
Section: Preliminaries: L 0 and Enabling Optimizationsmentioning
confidence: 99%
See 1 more Smart Citation
“…zip and unzip behave as usual, i.e, zip({1,2,3},{4,5,6}) = {(1,4), (2,5), (3,6)}, but the semantics of zip requires that the input arrays have outermost dimensions of equal sizes. Otherwise a compile or runtime error is signalled.…”
Section: Preliminaries: L 0 and Enabling Optimizationsmentioning
confidence: 99%
“…If so, then it is used in at least two kernels that may share an execution path, and hence it is unfusable. We make two remarks: First, if an array in the input set of Sc was produced by 5 A normalized program guarantees that the input arrays of a SOAC are variables rather than arbitrary expressions, hence we need not scan them. Figure 13.…”
Section: Fusing One Soacmentioning
confidence: 99%
“…Barring a linear or affine type system in the host language-Clean's uniqueness types (Barendsen and Smetsers 1996) may be sufficient-some other means to prevent aliasing of capabilities is required. The indexed monad Session accomplishes this in our Haskell implementation of session types.…”
Section: Applicability To Other Languagesmentioning
confidence: 99%
“…The type systems [25,24,2] based on linear logic fail to achieve the Example 1 case because variable l is used twice. Kobayashi [10], and Aspinall and Hofmann [1] overcome this shortcoming by using more fine-grained usage aspects, but their systems still reject Example 1 because variables l and t are aliased at line (2)- (3).…”
Section: Related Workmentioning
confidence: 99%
“…A → ∃X. (A˙ X, A) of copyleft, we instantiate A by the memory-type π.left of the argument t1, and X by the name X 2 for the newly allocated cells at line (2). The instantiated memory-type π.left → (π.left˙ X 2 , π.left) says that when applied to the left subtree t1 of t, the function returns a tree consisting of new cells or the cells already in the left subtree t1, but uses only the cells in the left subtree t1.…”
Section: Step One: the Memory Usage Analysismentioning
confidence: 99%