Concrete generic functionals - Principles, design and applications

Raymond T. Boute · Ghent University Academic Bibliography (Ghent University) · 2003

Generic design is not only pertinent to programs, but a fortiori to declarative formalisms as well, and the ensuing generalizations often benefit programming. In the considered framework, generality is obtained by (re)defining traditionally non-functional objects uniformly as functions. This results in intrinsic polymorphism, i.e., designing a collection of functionals without restriction on their arguments makes it intrinsically applicable to all objects captured by the uniformization. Unlike the abstract operators on “arrows” in category theory, these generic functionals are concrete, as their definition explicitly takes into account relevant properties of their arguments, yet such that it benefits generality. This is done by associating types in a new, uniform fashion. The generic functionals thus designed include generalized composition and inverse, direct extension, transposition, override, merge etc., plus one more for expressing types, the functional cartesian product. Their genericity is fully general and extends beyond discrete mathematics. As illustrated, their first purpose was providing smooth transformation between the point-wise style of expression and the point-free one (without variables) in the formal manipulation of analog and discrete signal flow circuit descriptions. In passing, this shows how a widely used graphical language can be seen as a functional programming language. Once made generic, said functionals prove useful and convenient in diverse other areas including, as demonstrated, functional programming, aggregate data types, various kinds of polymorphism, predicate calculus, formal semantics, relational databases, relation algebra.

Read the paper · More papers on PaperTik