CPL - Chalmers Publication Library
| Utbildning | Forskning | Styrkeområden | Om Chalmers | In English In English Ej inloggad.

Executable relational specifications of polymorphic type systems using prolog

Ki Yung Ahn ; Andrea Vezzosi (Institutionen för data- och informationsteknik, Datavetenskap (Chalmers))
Lecture Notes in Computer Science: 13th International Symposium on Functional and Logic Programming, FLOPS 2016; Kochi; Japan; 4 March 2016 through 6 March 2016 (0302-9743). Vol. 9613 (2016), p. 109-125.
[Konferensbidrag, refereegranskat]

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.

Nyckelord: Algebraic datatype; Delayed goals; Functional language; Higher-kinded Polymorphism; Hindley–Milner; Kind polymorphism; Logic programming; Nested datatype; Parametric polymorphism; Prolog; Type constructor polymorphism; Type inference; Type system; Unification

Denna post skapades 2016-07-11. Senast ändrad 2017-06-28.
CPL Pubid: 239261


Läs direkt!

Länk till annan sajt (kan kräva inloggning)