Book contents
- Frontmatter
- Contents
- Preface
- Introduction
- 1 Basic concepts
- 2 Rewriting systems
- 3 Automata and rational languages
- 4 Subgroups of free products of cyclic groups
- 5 Coset enumeration
- 6 The Reidemeister-Schreier procedure
- 7 Generalized automata
- 8 Abelian groups
- 9 Polycyclic groups
- 10 Module bases
- 11 Quotient groups
- Appendix Implementation issues
- Bibliography
- Index
Appendix - Implementation issues
Published online by Cambridge University Press: 06 March 2010
- Frontmatter
- Contents
- Preface
- Introduction
- 1 Basic concepts
- 2 Rewriting systems
- 3 Automata and rational languages
- 4 Subgroups of free products of cyclic groups
- 5 Coset enumeration
- 6 The Reidemeister-Schreier procedure
- 7 Generalized automata
- 8 Abelian groups
- 9 Polycyclic groups
- 10 Module bases
- 11 Quotient groups
- Appendix Implementation issues
- Bibliography
- Index
Summary
Although the descriptions of algorithms in this book are, in most cases, sufficiently detailed to define them mathematically, the algorithms cannot be converted into well-designed computer programs without a great deal of additional work. One must consider carefully the choice of language in which to carry out the implementation. Equally important is the choice of data structures. All objects manipulated by a digital computer must ultimately be represented by patterns of binary digits or bits. A given mathematical object may have many possible representations as a bit pattern, and the representation selected can affect drastically the running time or the memory usage of the program. In this section we shall look briefly at the language issue and then turn to the question of data structures. To focus the discussion, we shall consider the example of automata and consider ways of representing various types of automata in a computer. In the case of coset automata, we shall also investigate the consequences for the coincidence procedure of the choice of data structure.
There are three broad categories of languages in which we might implement algebraic algorithms. The first category consists of the languages associated with the currently available computer algebra systems. The general-purpose, high-level languages make up the second category. The third category consists of the assembly languages for specific computers. Let us look at the advantages and disadvantages of languages in these three categories.
The popular computer algebra packages, such as Axiom, Cayley, GAP, MACSYMA, Macaulay, Maple, Mathematica, Pari, REDUCE, and SAC2-C, all have their own languages for specifying computations.
- Type
- Chapter
- Information
- Computation with Finitely Presented Groups , pp. 570 - 580Publisher: Cambridge University PressPrint publication year: 1994