1. Languages
Jan 11/13, 2022
Automata
- distinguished by temporal memory
- finite automata: no temporary memory
- pushdown automata: stack
- Turing machines: random access
- more flexible memory → able to solve more computational problems:
1 2 |
|
- Turing machine is the most powerful known computational model, though cannot solve all computational problems
Languages
- language is a set of strings
- string is a sequence of symbols from the alphabet
- alphabet
is a set of symbols e.g. (non-empty)
- operations: concatenation (
), reverse ( ), exponent ( ) - length:
→ length of concat: - empty string:
or- note:
, ,
- note:
- star
operation: all possible strings from the alphabet (including )- e.g.
=> - language over alphabet
is any subset of
- e.g.
-
language problems are membership problems => does string belong to language
-
Two special languages:
- empty language {} or Ø => size
- empty string language
=> size , string length
- empty language {} or Ø => size
Operations
- union:
, intersection: , difference - complement:
- reverse:
- concatenation:
(or "L n times")- e.g.
- e.g.
then - special case:
- e.g.
- Star closure / Kleene *:
- Positive closure:
- note:
- note: