|
Conversion typed functions into relational form
P. Lozov, D. Boulytchev St. Petersburg State University
Abstract:
Relational programming is an approach that allows you to execute programs in different "directions" to get different behaviors from one relational specification. The direct development of relational programs is a complex task, requiring the developer to have certain skills. However, in many cases, the required relational program can be obtained from a certain functional program automatically. In this paper, the problem of automatic conversion of functional programs into relational ones is considered. The main contribution of the paper is the method of converting typed functions into a relational form, as well as proving its static and dynamic correctness. This method can be applied to typed programs of a general kind. To describe these programs, a compact ML-like language (a subset of OCaml) is used, equipped with a Hindley-Milner type system with let-polymorphism Also, the paper discusses the limitations of the proposed method, presents an implementation for a subset of the OCaml language, and evaluates the method on a number of realistic examples.
Keywords:
functional programming, relational programming, conversion of programs.
Citation:
P. Lozov, D. Boulytchev, “Conversion typed functions into relational form”, Proceedings of ISP RAS, 30:2 (2018), 45–64
Linking options:
https://www.mathnet.ru/eng/tisp308 https://www.mathnet.ru/eng/tisp/v30/i2/p45
|
Statistics & downloads: |
Abstract page: | 155 | Full-text PDF : | 123 | References: | 28 |
|