Computational Algebra
by wizheart
Software Specialization as Applied to Computational Algebra
,Software Specialization as Applied to Computational Algebra
By
Pouya Larjani, M.Sc.
A Thesis Submitted to the School of Graduate Studies in partial fulfilment of the requirements for the degree
of
Doctor of Philosophy Department of Computing and Software McMaster University
c Copyright by Pouya Larjani, April 22, 2013
,ii DOCTOR OF PHILOSOPHY (2012) (Computer Science) McMaster University Hamilton, Ontario
TITLE:
Software Specialization as Applied to Computational Algebra.
AUTHOR:
Pouya Larjani, M.Sc. (McMaster University)
SUPERVISOR:
Dr. William M. Farmer
NUMBER OF PAGES:
viii, 198
, iii
Abstract
A great variety of algebraic problems can be solved using Gr¨bner bases, and computational commutative
algebra is the branch of mathematics that focuses mainly on such problems. In this thesis we employ
Buchbergers algorithm for finding Gr¨bner o bases by tailoring specialized instances of Buchbergers
algorithm via code generation. We introduce a framework for meta programming and code generation in the
F# programming language that removes the abstraction overhead of generic programs and produces type-
safe and syntactically valid specialized instances of generic programs. Then, we discuss the concept of
modularizing and decomposing the architecture of software products through a multistage design process
and define what specialization of software means in the context of producing special instances. We provide
a domain-specific language for the design of flexible, customizable, multistage programs. Finally, we utilize
the aforementioned techniques and framework to produce a highly parametrized, abstract and generative
program that finds Gr¨bner bases based o on Buchbergers original algorithm, which, given all the proper
definitions and features of a specific problem in computational algebra, produces a specialized instance of a
solver for this problem that can be shown to be correct and perform within the desired time complexity.