Fundamental Algebraic Concepts in Concept-Enabled C++

Loading...
Thumbnail Image

Other Version

External File or Record

Can’t use the file because of accessibility barriers? Contact us

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Algebraic concepts are the theoretical background of generic linear algebra software. The specification of these concepts together with the corresponding model declarations enables the compiler to verify the applicability of types within template functions. The availability of semantic properties in addition to syntactic ones establishes a new qualitity of software reliability because semantic errors are transparent to C++ compilers without concepts and lead to wrong executables without notice in the compilation process. Exposing semantic properties in source code has a tremendous impact on software reliability and maintainability. We call this new paradigm Property-Aware Programming. This is the first paper in this new research area and we focus here on algebraic properties. Our specification of these properties in terms of concepts provides a fine-grained distinction between different basic properties and establishes a clear border between mathematical and implementation requirements. The application of these concepts is illustrated on the generic computation of the power function. Other important applications of algebraic concepts shown in this paper are the constraints on generic reductions in order to verify? the applicability of high-performance source code transformations and the type-dependent and operation-aware handling of rounding errors. In addition, theory on the inclusion of model sets with respect to arity-changing refinements is introduced.

Series and Number:

Indiana University Computer Science Technical Reports; TR638

EducationalLevel:

Is Based On:

Target Name:

Teaches:

Table of Contents

Description

Keywords

Citation

Journal

DOI

Rights

This work is protected by copyright unless stated otherwise.

Type