Procedure
A finite sequence of instructions that can be mechanically carried out, given any input.
Algorithm
A procedure that terminates after a finite number of steps for any input.
Recursively-enumerable
Enumerable means, all elements of a set or a language can be list in an order.
A set is recursively-enumerable iff there exists a procedure to determine whether an element belongs to the set or not.
A language is recursively-enumerable (aka. Turing-acceptable) iff there exists a Turing machine that accepts .
A -tape Turing machine is said to enumerate a language iff:
- Tape head on 1st tape:
- never moves to left
- no non-blank symbols on it
- never modified layer
- For every string , at some point 1st tape will contain for some where the strings are distinct elements of
- If is finite, nothing is printed after # following the last
If and are recursively-enumerable languages, then and are also recursively-enumerable.
Recursive
A set is recursive iff there exists an algorithm to determine whether a given element belongs to or not.
A language is recursive (aka. Turing-decidable or decidable) iff there exists a Turing machine that decides .
A language is recursive iff there exists a Turing machine that enumerates in canonical order (i.e. shorter strings come first and in lexicographical order).
If is recursive, is also recursive.