Drexel University Home Pagewww.drexel.edu DREXEL UNIVERSITY LIBRARIES HOMEPAGE >>
iDEA DREXEL ARCHIVES >>

iDEA: Drexel E-repository and Archives > Drexel Theses and Dissertations > Drexel Theses and Dissertations > Efficient programming techniques for the SACLIB computer algebra library

Please use this identifier to cite or link to this item: http://hdl.handle.net/1860/3057

File Description SizeFormat
Richardson_David.pdf821.7 kBAdobe PDFView/Open
Title: Efficient programming techniques for the SACLIB computer algebra library
Authors: Richardson, David G.
Keywords: Computer science
Generic programming (Computer science)
Algebra -- Computer programs
Issue Date: 16-Jun-2009
Abstract: This dissertation describes three contributions to the SACLIB computer algebra library. Using generic programming we specify the Recursively Fixed Iterator and the Structure Protecting Iterator concepts. We prove that models of these concepts cannot leak or double delete resources. Through template metaprogramming, we implement models of these concepts that provide this memory safety at compile-time and without any run-time overhead. Using aspect oriented programming, we allow unit and regression tests to be automatically obtained from an executing SACLIB program. This program instrumentation is transparent both to SACLIB maintainers and clients. This mechanism allows the automated creation of regression test suites during the execution of normal SACLIB programs. Using code generation and auto-tuning, we allow high performance implementations of the Taylor shift, de Casteljau's algorithm, and the Descartes Method for polynomial root isolation to be automatically tuned for di erent architectures. This allows a speedup of 10-20 over existing methods to be obtained on modern CPU architectures. The key to this speedup is the creation of a tiling scheme that allows the irregular structure of the computation to be tiled using a small number of tiles that are easy for a code generator to produce code for. The implementation of the Recursively Fixed Iterator and the Structure Protecting Iterator provide memory safety by using C++ template metaprograms that selectively disable certain classes of side effects in programs using the iterators. Other safety properties can be achieved using similar disabling of side e ects. We believe that the most important continuation of the work presented here is the development of programming language techniques to allow programmers to control where their code should sit along the spectrum of the absence of side effects in pure functional languages and the unrestricted side effects of imperative languages.
URI: http://hdl.handle.net/1860/3057
Appears in Collections:Drexel Theses and Dissertations

Items in iDEA are protected by copyright, with all rights reserved, unless otherwise indicated.

 

Valid XHTML 1.0! DSpace Software Copyright © 2002-2007 MIT and Hewlett-Packard - Feedback