Many structures in abstract algebra and computer algebra can be organized as categories and many algorithms boil down to basic categorical constructions. Using these categorical constructions as a programming language leads to highly abstract algorithms which can be applied to various algebraic structures. We call the concept of writing algorithms in basic categorical constructions categorical programming. An implementation of a categorical programming language is realized in the Gap package CAP.
In this talk I will first describe what is necessary for an algebraic structure to form a computable category. For many examples, e.g., vector spaces over certain fields, modules over certain rings, etc., the implementations are already available in various packages of the CAP-project. I will then describe how such categorical organization of data can be used to write abstract algorithms and to produce more complicated data structures.
As an application of the latter I will use the category of finitely presented graded modules over a graded polynomial ring to model the category of coherent sheaves over a toric variety, and then apply the same generic algorithms to both f.p. graded modules and coherent sheaves.