Skip to content

Alphabets

Malte Isberner edited this page Nov 7, 2013 · 2 revisions

In AutomataLib, an alphabet is a finite ordered set of input symbols. Mathematically, it can be described as a set S = { a_1, ..., a_n }. The main purpose of an Alphabet in AutomataLib is, besides representing the collection of input symbols, to assign to each symbol a unique index between 0 and n-1, where n is the size of the alphabet. This symbol to index mapping is used

  • to fix an ordering on the input symbols, based on the ordering of the indices and
  • to allow automaton implementations to abstract from the concrete type used for input symbols, and internally work on integers instead (i.e., maintaining transition information in an array instead of a Map).

This article will assist you to choose the right alphabet type depending on your use case.

Immutable Alphabets

In the following, we discuss scenarios where the alphabet is fixed once and thereafter remains unchanged.

Create alphabet from an enum

tbc