
- Automata Theory - Applications
- Automata Terminology
- Basics of String in Automata
- Set Theory for Automata
- Finite Sets and Infinite Sets
- Algebraic Operations on Sets
- Relations Sets in Automata Theory
- Graph and Tree in Automata Theory
- Transition Table in Automata
- What is Queue Automata?
- Compound Finite Automata
- Complementation Process in DFA
- Closure Properties in Automata
- Concatenation Process in DFA
- Language and Grammars
- Language and Grammar
- Grammars in Theory of Computation
- Language Generated by a Grammar
- Chomsky Classification of Grammars
- Context-Sensitive Languages
- Finite Automata
- What is Finite Automata?
- Finite Automata Types
- Applications of Finite Automata
- Limitations of Finite Automata
- Two-way Deterministic Finite Automata
- Deterministic Finite Automaton (DFA)
- Non-deterministic Finite Automaton (NFA)
- NDFA to DFA Conversion
- Equivalence of NFA and DFA
- Dead State in Finite Automata
- Minimization of DFA
- Automata Moore Machine
- Automata Mealy Machine
- Moore vs Mealy Machines
- Moore to Mealy Machine
- Mealy to Moore Machine
- Myhill–Nerode Theorem
- Mealy Machine for 1’s Complement
- Finite Automata Exercises
- Complement of DFA
- Regular Expressions
- Regular Expression in Automata
- Regular Expression Identities
- Applications of Regular Expression
- Regular Expressions vs Regular Grammar
- Kleene Closure in Automata
- Arden’s Theorem in Automata
- Convert Regular Expression to Finite Automata
- Conversion of Regular Expression to DFA
- Equivalence of Two Finite Automata
- Equivalence of Two Regular Expressions
- Convert Regular Expression to Regular Grammar
- Convert Regular Grammar to Finite Automata
- Pumping Lemma in Theory of Computation
- Pumping Lemma for Regular Grammar
- Pumping Lemma for Regular Expression
- Pumping Lemma for Regular Languages
- Applications of Pumping Lemma
- Closure Properties of Regular Set
- Closure Properties of Regular Language
- Decision Problems for Regular Languages
- Decision Problems for Automata and Grammars
- Conversion of Epsilon-NFA to DFA
- Regular Sets in Theory of Computation
- Context-Free Grammars
- Context-Free Grammars (CFG)
- Derivation Tree
- Parse Tree
- Ambiguity in Context-Free Grammar
- CFG vs Regular Grammar
- Applications of Context-Free Grammar
- Left Recursion and Left Factoring
- Closure Properties of Context Free Languages
- Simplifying Context Free Grammars
- Removal of Useless Symbols in CFG
- Removal Unit Production in CFG
- Removal of Null Productions in CFG
- Linear Grammar
- Chomsky Normal Form (CNF)
- Greibach Normal Form (GNF)
- Pumping Lemma for Context-Free Grammars
- Decision Problems of CFG
- Pushdown Automata
- Pushdown Automata (PDA)
- Pushdown Automata Acceptance
- Deterministic Pushdown Automata
- Non-deterministic Pushdown Automata
- Construction of PDA from CFG
- CFG Equivalent to PDA Conversion
- Pushdown Automata Graphical Notation
- Pushdown Automata and Parsing
- Two-stack Pushdown Automata
- Turing Machines
- Basics of Turing Machine (TM)
- Representation of Turing Machine
- Examples of Turing Machine
- Turing Machine Accepted Languages
- Variations of Turing Machine
- Multi-tape Turing Machine
- Multi-head Turing Machine
- Multitrack Turing Machine
- Non-Deterministic Turing Machine
- Semi-Infinite Tape Turing Machine
- K-dimensional Turing Machine
- Enumerator Turing Machine
- Universal Turing Machine
- Restricted Turing Machine
- Convert Regular Expression to Turing Machine
- Two-stack PDA and Turing Machine
- Turing Machine as Integer Function
- Post–Turing Machine
- Turing Machine for Addition
- Turing Machine for Copying Data
- Turing Machine as Comparator
- Turing Machine for Multiplication
- Turing Machine for Subtraction
- Modifications to Standard Turing Machine
- Linear-Bounded Automata (LBA)
- Church's Thesis for Turing Machine
- Recursively Enumerable Language
- Computability & Undecidability
- Turing Language Decidability
- Undecidable Languages
- Turing Machine and Grammar
- Kuroda Normal Form
- Converting Grammar to Kuroda Normal Form
- Decidability
- Undecidability
- Reducibility
- Halting Problem
- Turing Machine Halting Problem
- Rice's Theorem in Theory of Computation
- Post’s Correspondence Problem (PCP)
- Types of Functions
- Recursive Functions
- Injective Functions
- Surjective Function
- Bijective Function
- Partial Recursive Function
- Total Recursive Function
- Primitive Recursive Function
- μ Recursive Function
- Ackermann’s Function
- Russell’s Paradox
- Gödel Numbering
- Recursive Enumerations
- Kleene's Theorem
- Kleene's Recursion Theorem
- Advanced Concepts
- Matrix Grammars
- Probabilistic Finite Automata
- Cellular Automata
- Reduction of CFG
- Reduction Theorem
- Regular expression to ∈-NFA
- Quotient Operation
- Parikh’s Theorem
- Ladner’s Theorem
Post Turing Machine in Automata Theory
The Post-Turing Machine is an advanced model upon the finite automata and pushdown automata. The Post-Turing Machine uses an external memory in the form of a queue. The queue allows it to perform more complex operations. In this chapter, we will cover the basics, explain how the machine works, and walk through a detailed example for a better understanding.
What is the Post-Turing Machine?
The Post-Turing Machine is named after the Polish mathematician Emil Post. This machine is similar to the Turing machine but with a key difference: it uses a queue as its external memory. In a queue, operations are performed using two pointers: the front pointer and the rear pointer.
- Queue − We know the Queue from data structures. The queue is a linear data structure where elements are inserted at the rear and removed from the front. This structure follows the First In, First Out (FIFO) principle.
- Front Pointer − This pointer points to the first element of the queue.
- Rear Pointer − This pointer points to the last element of the queue.
In the Post-Turing Machine, the queue is used to store symbols, and operations are performed by inserting and deleting these symbols.
Definition of the Post-Turing Machine
The Post-Turing Machine is defined using seven tuples, which are as follows −
- Q − A finite set of states.
- Σ − The input alphabet.
- Γ − The queue symbols, which include all symbols in Σ and a special symbol Z0.
- δ − The transition function.
- q0 − The initial state, which is a member of Q.
- Z0 − A special symbol that marks the end of the string in the queue.
- F − The set of final states, which is a subset of Q.
The functional block diagram of the Post-Turing Machine looks like this −

Transition Function in the Post-Turing Machine
The transition function in the Post-Turing Machine defines how the machine processes input and interacts with the queue. There are two main operations −
- Delete Operation − This operation removes a symbol from the front of the queue.
- Insert Operation − This operation adds a symbol to the rear of the queue.
The transition function can be represented in several ways, depending on what action is being performed. Here are the four primary forms of the transition function −
- δ(q1, A) → (q2, B) − In this transition, the machine moves from state q1 to state q2. It deletes the symbol A from the front of the queue and inserts the symbol B at the rear.
- δ(q1, A) → (q2, ε) − Here, the machine moves from state q1 to state q2, deletes the symbol A from the front of the queue, but does not insert any new symbol at the rear.
- δ(q1, ε) → (q2, A) − In this case, the machine moves from state q1 to state q2 without deleting any symbol from the front, but it inserts the symbol A at the rear of the queue.
- δ(q1, ε) → (q2, ε) − This transition moves the machine from state q1 to state q2 without deleting any symbol from the front and without inserting any new symbol at the rear.
These transitions allow the Post-Turing Machine to manipulate the queue in different ways, depending on the needs of the computation.
Example of a Post-Turing Machine
Let us see one example of this type of machine. Consider a queue containing the string L = {an bn}, for example aaabbbZ0, where Z0 is the special symbol marking the end of the string.
Initial State − The post machine starts in state q0, insert string inside the queue.

Step 1
- Read the first 'a' from the input string.
- Delete the 'a' from the front of the queue (since the first occurrence of 'a' is encountered).
- Insert 'ε' (nothing) at the rear of the queue.
- Transition to state q1.

Step 2
- Read the second 'a' from the input string.
- Delete the 'a' from the front of the queue.
- Insert 'a' at the rear of the queue.
- Remain in state q1.

Step 3
- Read the third 'a' from the input string.
- Delete the 'a' from the front of the queue.
- Insert 'a' at the rear of the queue.
- Remain in state q1.

Step 4
- Read the first 'b' from the input string.
- Delete the 'b' from the front of the queue.
- Insert 'ε' (nothing) at the rear of the queue.
- Transition to state q2.

Step 5
- Read the second 'b' from the input string.
- Delete the 'b' from the front of the queue.
- Insert 'b' at the rear of the queue.
- Remain in state q2.

Step 6
- Read the third 'b' from the input string.
- Delete the 'b' from the front of the queue.
- Insert 'b' at the rear of the queue.
- Remain in state q2.

Step 7
- Read the 'Z0' from the input string.
- Delete the ' Z0' from the front of the queue.
- Insert ' Z0' at the rear of the queue.
- Remain in state q2.

Now repeat these steps. Currently after the first iteration, it is "abZ0". In the next iteration, it will be "abZ0". Thereafter, it will be only "Z0"
Transition Diagram − If we formulate this through state transition diagram, it will be look like −

Conclusion
The Post-Turing Machine is a powerful computational model that extends finite automata and pushdown automata. It uses a queue as external memory; it can perform more complex operations. In this chapter, we covered the basics of this machine with examples to explain stepbystep how a language can be detected and we also presented a state diagram for the generated machine.