Executable relational specifications of polymorphic type systems using prolog
Paper in proceeding, 2016

A concise, declarative, and machine executable specification of the Hindley–Milner type system (HM) can be formulated using logic programming languages such as Prolog. Modern functional language implementations such as the Glasgow Haskell Compiler support more extensive flavors of polymorphism beyond Milner’s theory of type polymorphism in the late 70's. We progressively extend the HM specification to include more advanced type system features. An interesting development is that extending dimensions of polymorphism beyond HM resulted in a multi-staged solution: resolve the typing relations first, while delaying to resolve kinding relations, and then resolve the delayed kinding relations. Our work demonstrates that logic programing is effective for prototyping polymorphic type systems with rich features of polymorphism, and that logic programming could have been even more effective for specifying type inference if it were equipped with better theories and tools for staged resolution of different relations at different levels.

Parametric polymorphism

Logic programming

Functional language

Type inference

Type system

Nested datatype

Delayed goals

Unification

Algebraic datatype

Type constructor polymorphism

Prolog

Higher-kinded Polymorphism

Hindley–Milner

Kind polymorphism

Author

Ki Yung Ahn

Portland State University

Andrea Vezzosi

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 9613 109-125
978-331929603-6 (ISBN)

Subject Categories

Computer and Information Science

DOI

10.1007/978-3-319-29604-3_8

ISBN

978-331929603-6

More information

Created

10/7/2017