Aho machine alphabet #
Finite marks, work symbols, and their basic structural properties.
The finite marked work alphabet #
Aho's four marks on a compressed index.
firstPending/firstUsed are the paper's marks 0/1, and
laterPending/laterUsed are marks 2/3. "Used" means that a productive terminal or binary
event has occurred since the represented index was consumed, so the index may be erased.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Mark the productive use of an index (Aho's operation alpha ↦ alpha⁺).
Equations
- IndexedGrammar.Aho.IndexMark.firstPending.markUsed = IndexedGrammar.Aho.IndexMark.firstUsed
- IndexedGrammar.Aho.IndexMark.firstUsed.markUsed = IndexedGrammar.Aho.IndexMark.firstUsed
- IndexedGrammar.Aho.IndexMark.laterPending.markUsed = IndexedGrammar.Aho.IndexMark.laterUsed
- IndexedGrammar.Aho.IndexMark.laterUsed.markUsed = IndexedGrammar.Aho.IndexMark.laterUsed
Instances For
Marks 1 and 3 are precisely the erasable marks.
Equations
Instances For
Marks 2 and 3 denote an index which is not the first consumed index of the current copied stack. Only these marks permit Aho's primed continuation after a pop.
Equations
Instances For
A symbol of Aho's unpadded logical work tape.
plain A is the paper's A, while live A is A': at least one compressed index to its
right is promised to be consumed during the expansion of this occurrence.
- terminal {T : Type} {g : IndexedGrammar T} : T → WorkSym g
- plain {T : Type} {g : IndexedGrammar T} : g.nt → WorkSym g
- live {T : Type} {g : IndexedGrammar T} : g.nt → WorkSym g
- index {T : Type} {g : IndexedGrammar T} : CFlag g → IndexMark → WorkSym g
- dollar {T : Type} {g : IndexedGrammar T} : WorkSym g
- close {T : Type} {g : IndexedGrammar T} : WorkSym g
- hash {T : Type} {g : IndexedGrammar T} : WorkSym g
Instances For
Equations
- One or more equations did not get rendered due to their size.
Does a work symbol carry a compressed index?
Instances For
Is a work symbol a $ frame opener?
Instances For
A list contains no compressed-index symbol.
Equations
- IndexedGrammar.Aho.IndexFree xs = ∀ (R : IndexedGrammar.Aho.CFlag g) (d : IndexedGrammar.Aho.IndexMark), IndexedGrammar.Aho.WorkSym.index R d ∉ xs
Instances For
A list contains no $ frame opener.
Equations
Instances For
Mark the rightmost symbol of alpha if it is a compressed index. This is exactly the
operation written alpha⁺ by Aho.
Equations
- One or more equations did not get rendered due to their size.