Theory of Computer Science
- D3. GOTO-Computability
Malte Helmert
University of Basel
Theory of Computer Science D3. GOTO-Computability Malte Helmert - - PowerPoint PPT Presentation
Theory of Computer Science D3. GOTO-Computability Malte Helmert University of Basel April 25, 2016 WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary Overview: Computability Theory Computability Theory imperative
University of Basel
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
Post’s Correspondence Problem Undecidable Grammar Problems G¨
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
Write 0# in front of the used part of the tape. (m − k) times, write #0 behind the used part of the tape.
Replace all symbols starting from the first # with , then move to the first symbol that is not .
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
1 Move left until a blank is reached,
2 (i + 1) times: move right until # or is reached. 3 Move one step to the left.
4 Execute DTM for increment by 1. (Most difficult part:
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
1 Move to the last digit of xi (see previous slide). 2 Test if the digit is a 0 and the symbol
3 Otherwise: execute DTM for decrement by 1.
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
1 Recursively build DTMs M1 for P1 and M2 for P2. 2 Combine these to a DTM for P1; P2
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
1 Recursively build DTM M for P. 2 Build a DTM M′ for WHILE xi = 0 DO P END
1
Move to the last digit of xi.
2
Test if that symbol is 0 and the symbol to its left is # or . If so: done.
3
Otherwise execute M, where all transitions to end states of M are replaced by transitions to the start state of M′.
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
HALT stops the execution of the program. After GOTO Lj execution continues with statement Aj. After IF xi = c THEN GOTO Lj execution continues with Aj if variable xi currently holds the value c.
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
0 → N0 is called GOTO-computable
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
The variable of course has the form xi, but for readability we write it as pc for “program counter”.
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
0 →p N0 be a function.
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary
WHILE vs. Turing GOTO Programs GOTO vs. WHILE Turing vs. GOTO Summary