General Homomorphic Overloading

A general homomorphic overloading in a first-order type system is discussed and its attendant subtype inference problem is formulated. We propose a computationally efficient type inference algorithm by converting the attendant constraint-satisfaction problem into the algebraic path problem for a constraint graph weighted with elements of a specially constructed non-commutative star semiring. The elements of the semiring are monotonic functions from integers to integers (including ±∞) with pointwise maximum and function composition as semiring operations. The computational efficiency of our method is due to Kleene's algebraic path method's cubic complexity.

[1]  Sven-Bodo Scholz,et al.  Single Assignment C: efficient support for high-level array operations in a functional setting , 2003, Journal of Functional Programming.

[2]  John C. Reynolds,et al.  Three Approaches to Type Structure , 1985, TAPSOFT, Vol.1.

[3]  Torben Æ. Mogensen,et al.  Tractable Constraints in Finite Semilattices , 1996, Sci. Comput. Program..

[4]  Tracy Camp,et al.  A taxonomy of distributed termination detection algorithms , 1998, J. Syst. Softw..

[5]  Stefan Kaes Type inference in the presence of overloading, subtyping and recursive types , 1992, LFP '92.

[6]  Neil D. Jones Semantics-Directed Compiler Generation , 1980, Lecture Notes in Computer Science.

[7]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[8]  John C. Mitchell,et al.  Type inference with simple subtypes , 1991, Journal of Functional Programming.

[9]  A. V. Shafarenko RETRAN: a recurrent paradigm for data-parallel computing , 1995 .

[10]  Ryan Stansifer,et al.  Type inference with subtypes , 1988, POPL '88.

[11]  Daniel Leivant Discrete polymorphism , 1990, LISP and Functional Programming.

[12]  John C. Reynolds,et al.  Using category theory to design implicit conversions and generic operators , 1980, Semantics-Directed Compiler Generation.

[13]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[14]  Scott F. Smith,et al.  Type inference for recursively constrained types and its application to OOP , 1995, MFPS.

[15]  Alexander V. Shafarenko Coercion as homomorphism: type inference in a system with subtyping and overloading , 2002, PPDP '02.

[16]  G. Unter Rote Path Problems in Graphs , 1989 .

[17]  Alexander V. Shafarenko Stream Processing on the Grid: an Array Stream Transforming Language , 2003, SNPD.