General Homomorphic Overloading

  • Alex Shafarenko
  • Sven-Bodo Scholz
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3474)


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.


Constraint Satisfaction Problem Nondecreasing Function Output Type Type Inference Constraint Graph 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cardelli, L., Wegner, P.: On understanding types, data abstraction, and polymorphism. Computing Surveys 17(4), 471–522 (1985)CrossRefGoogle Scholar
  2. 2.
    Mitchell, J.: Type inference with simple subtypes. Journal of Functional Programming 1, 245–285 (1991)zbMATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Lievant, D.: Discrete Polymorphism. In: Proc. 1990 ACM Conference on LISP and Functional Programming, pp. 288–297 (1990)Google Scholar
  4. 4.
    Shafarenko, A.: Coercion as homomorphism: type inference in a system with subtyping and overloading. In: PPDP 2002, Pittsburg, PA, October 6-8 (2002)Google Scholar
  5. 5.
    Shafarenko, A.: RETRAN: a Recurrent Paradigm for Data-Parallel Computing. Computer Systems Science and Engineering 11(4), 201–209 (1996)Google Scholar
  6. 6.
    Reynolds, J.C.: Using category theory to design implicit conversions and generic operators. In: Jones, N.D. (ed.) Semantics-Directed Compiler Generation. LNCS, vol. 94, pp. 211–258. Springer, Heidelberg (1980)Google Scholar
  7. 7.
    Kaes, S.: Type inference in the presence of overloading, subtyping and recursive types. In: Proceedings of the 1992 ACM conference on LISP and functional programming, San Francisco, California, United States 1992, pp. 193–204 (1992)Google Scholar
  8. 8.
    Rote, G.: Path Problems in Graphs. In: Tinhofer, G., Noltemeier, E., Syslo, M. (eds.) Computational Graph Theory, Wien, Computing Suppl. 7, pp. 155–198. Springer, Heidelberg (1990)Google Scholar
  9. 9.
    Fuh, Y., Mishra, P.: Type inference with subtypes. Theoretical Computer Science 73, 155–175 (1990)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Rehof, J., Mogensen, T.: Tractable constraints in finite semilattices. In: Cousot, R., Schmidt, D.A. (eds.) SAS 1996. LNCS, vol. 1145, pp. 285–300. Springer, Heidelberg (1996)Google Scholar
  11. 11.
    Shafarenko, A.: Stream Processing on the Grid: an Array Stream Transforming Language. In: SNPD 2003, pp. 268–276Google Scholar
  12. 12.
    Scholz, S.-B.: Single Assignment C: efficient support for high-level array operations in a functional setting. J. Funct. Program 13(6), 1005–1059 (2003)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Alex Shafarenko
    • 1
  • Sven-Bodo Scholz
    • 1
  1. 1.Dept of Computer ScienceUniversity of HertfordshireUnited Kingdom

Personalised recommendations